2
일부 활동에서 위젯을 업데이트 할 때 목록 원격보기가 업데이트되지 않습니다. 앱 위젯 (로그 표시)의 onUpdate까지옵니다. 그러나 신선한 데이터로 그것을 팽창시키는리스트 뷰의 어댑터에는 들어 가지 않습니다.Android appwidget remoteviews가 업데이트되지 않음
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
Log.e("called", "onupdate");
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_lay);
views.setTextViewText(R.id.textView1,
"Floating Text will be displayed here .. Daily Thoughts");
Intent intent = new Intent(context, RemoteServiceEmin.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
views.setRemoteAdapter(R.id.gridview, intent);
// inflating list remote view
Intent intentlist = new Intent(context, ListInflater.class);
intentlist.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
appWidgetId);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
views.setRemoteAdapter(R.id.listview, intentlist);
// setting onclick on gridview
Intent itemClickIntent = new Intent(context, MyWidgetProvider.class);
itemClickIntent.setAction(ITEM_CLICK_ACTION);
itemClickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
appWidgetIds[i]);
PendingIntent itemClickPendingIntent = PendingIntent.getBroadcast(
context, 0, itemClickIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
views.setPendingIntentTemplate(R.id.gridview,
itemClickPendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
이 방법은 불안정하다 codesnippetbelow처럼
뭔가를 사용하여 리모트 뷰를 Appwidget의 onRecieve에 그것을 잡을 및 업데이트 : 1. 그것은 약 4 초 소요 AppWidgetProvider가 브로드 캐스트를 수신하기 위해; 2. 때로는 AppWidgetProvider가 단순히 브로드 캐스트를 수신 할 수 없습니다. 방법을 에서 사용하십시오. http://stackoverflow.com/a/7738687/903665 – skyin