json リソースによって毎分更新されるウィジェットを開発しようとしています。私の問題は、それをジェリービーンで起動しようとするとクラッシュすることですが、ジンジャーブレッドでは機能します。
ここで、すべてのインターネット接続をメインスレッドに移動する必要があることがわかりましたよね? 現時点では、HttpRequest というクラスがあります。
public class HttpRequest {
private String url;
public HttpRequest(String url)
{
this.url = url;
}
public String GetContent() throws ClientProtocolException, IOException
{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
String html = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
str.append(line);
}
in.close();
html = str.toString();
return html;
}
}
毎分、WidgetProvider クラスのメソッドである updateAppWidget() が呼び出されます。内部 updateAppWidget() があります:
HttpRequest r = new HttpRequest("http://www.hwlogos.com/test.json");
remoteViews.setTextViewText(R.id.ip, r.GetContent());
急勾配でそれを解決する方法を教えてもらえますか? ありがとう