여기 내 onUpdate 코드입니다.내 위젯이 HttpResponse에서 HttpGet을 실행하지 않는 것 같습니다
ComponentName thisWidget = new ComponentName(context,
MyWidgetProvider.class);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
final int N = appWidgetIds.length;
for (int ii = 0; ii < N ; ii++)
{
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
Toast.makeText(context, "Loading", Toast.LENGTH_SHORT).show();
remoteViews.setTextViewText(R.id.update, "Loading2");
try {
data = connect();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
now = Calendar.getInstance();
timeHour = now.get(Calendar.HOUR_OF_DAY);
remoteViews.setTextViewText(R.id.update, "The latest PSI reading is " + data);
Intent intent = new Intent(context, MyWidgetProvider.class);
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);
appWidgetManager.updateAppWidget(allWidgetIds, remoteViews);
}
}
그리고 여기는 방법이다()에 연결;
public String connect() throws IOException
{ String temp = "WAD";
try {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://app2.nea.gov.sg/anti-pollution-radiation-protection/air-pollution/psi/psi-readings-over-the-last-24-hours");
HttpResponse response;
response = client.execute(get);
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null){
sb.append(line+"\n");
}
in.close();
temp = sb.toString();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return temp;
}
는 것은 내 코드 = client.execute이 (수)
응답에서 죽을 것입니다;
LogCat이 나에게 말한 것에 따르면. 그것은 그 줄에있는 태그 "System.err"과 data = connect();에서 지적했다.
connect() 메서드는 위젯이 아닌 다른 응용 프로그램에서 잘 작동하므로 잘못된 내용을 잘 모릅니다.
편집 :
다음은 logcat입니다.
06-27 21 : 30 : 38.058 : System.err에/W (28060) : 30 : 38.058 : W com.example.psi.MyWidgetProvider.connect (MyWidgetProvider.java:284) 06-27 21 /System.err(28060) : com.example.psi.MyWidgetProvider.onUpdate (MyWidgetProvider.java:71) 06-27 21 : 30 : 38.058 : W/System.err (28060) : android.appwidget.AppWidgetProvider .onReceive (AppWidgetProvider.java:66)
전체 스택 추적을 게시하십시오. 일반적으로 답변이 거짓말입니다. – joecks