1

ウィジェット付きのアプリがあります。ウィジェットを使用してアプリを起動したいのですが、起動後にウィジェットをクリックしても反応しません。アプリを正常に起動した後 (そして再度閉じた後) にのみ、ウィジェットはウィジェット自体のクリックに応答し始めます。

これは、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);
    }
}

アプリが起動後に少なくとも 1 回はウィジェットを起動しなくてもウィジェットのクリックを登録するには、何を変更する必要がありますか?

4

1 に答える 1

0

BOOT ブロードキャストに応答し、ウィジェットの PendingIntent をリセットする BroadcastReceiver を作成してみてください。ウィジェットの PendingIntent がデバイスの再起動後も生き残るとは思えません。

于 2012-04-18T20:55:43.053 に答える