私はウィジェット付きのアプリを持っています。ウィジェットでアプリを起動したいのですが、起動後にウィジェットがクリックに反応しません。通常はアプリを起動してからもう一度閉じると、ウィジェットはウィジェット自体のクリックに反応し始めます。起動後にAndroid 2.3ウィジェットがクリックに反応しないのはなぜですか?
これはどのように私のセットアップAppWidgetProviderとウィジェット:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{ final int ids = appWidgetIds.length;
for(int i=0;i<ids;i++)
{ int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(context, TestReceiver.class);
intent.setAction(ACTION_WIDGET_RECEIVER);
intent.setClassName(TestReceiver.class.getPackage().getName(), TestReceiver.class.getName());
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget_root, pi);
views.setTextViewText(R.id.widgetclock, "Loading...");
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
私は少なくとも一度はそれを最初に起動することなく、私のアプリは、起動後にウィジェット上でクリックを登録するように変更する必要がありますか?
なぜあなたはアクション*と*クラスを使用していますか?通常、どちらか一方を使用します。 – CommonsWare
そうでなければ動作しません。 – HardCoder
"そうでなければ動作しない" - それはほかの人のために働く。おそらく、あなたは 'BroadcastReceivers'と' Intent'システムがどのように働いているのかを学んで、その後アプリウィジェットを書くことを試みるべきです。 – CommonsWare