我已經實現了一個App小部件來啓動我點擊時的活動。有時候從小部件啓動活動失敗有時
onUpdate()
的WidgetProvider
方法:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.mywidgetprovider_layout);
// ....update updateViews here
appWidgetManager.updateAppWidget(appWidgetId, updateViews);
Intent onClickedIntent = new Intent(context,MyActivity.class);
PendingIntent pi = PendingIntent.getActivity(context, 0, onClickedIntent, 0);
updateViews.setOnClickPendingIntent(R.id.myView, pi);
appWidgetManager.updateAppWidget(appWidgetId, updateViews);
}
}
它如預期加主屏幕上的小部件之後。
但有時候,它不能再次啓動活動!我必須刪除小部件並再次添加。
我該如何解決?請幫忙。
Thx dave.c,對我來說這似乎很好。我認爲要點是將for循環外部的updateViews.setOnClickPendingIntent()代碼移出。 – chow 2011-02-04 13:16:58