0

アプリウィジェットがあります。

アプリ ウィジェットで、同じ Viev に 2 つの Pendingintests を設定しようとしました。

        //FIRST PENDINGINTENT
        Intent i1 = new Intent(getApplicationContext(), AppWidget.class);
        i1.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        i1.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
        PendingIntent pi = PendingIntent.getBroadcast(
                getApplicationContext(), 0, i1,
                PendingIntent.FLAG_UPDATE_CURRENT);

        //SECONDPENDINGINTENT
        Intent i11 = new Intent(getApplicationContext(), WakeUp.class);
        PendingIntent pi1 = PendingIntent.getActivity(
                getApplicationContext(), 0, i11,0);

        //I SET THE PENDINGINTENT ON THE VIEW
        updateViews.setOnClickPendingIntent(R.id.background, pi1);
        updateViews.setOnClickPendingIntent(R.id.background, pi);

ご覧のとおり、同じビューR.id.backgroundに2 つの Pendingintent ( pipi1 )を設定しています。

Pendingintent piは正常に動作します。

Pendingintent pi1には効果がありません。

助けてください

4

1 に答える 1

1

これは不可能です。内の任意Viewの は、に対してRemoteViews1 つだけ持つことができます。2 回コールすると、最後の 1 つが勝ちます。PendingIntentsetOnClickPendingIntent()setOnClickPendingIntent()

したがって、一度だけ呼び出して、2 番目の操作を完了するためにWakeUp呼び出してください。sendBroadcast()

また、このコードではアプリケーション コンテキストは必要ないため、 に置き換えgetApplicationContext()てください。this

于 2013-06-04T13:41:18.050 に答える