0

我有一个应用小部件。

在 App Widget 中,我尝试在同一个 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);

如您所见,我在 SAME 视图R.id.background上设置了 2 个 Pendingintent( pipi1 ) 。

Pendingintent pi按其应有的方式工作。

Pendingintent pi1没有效果。

请任何帮助非常感谢

4

1 回答 1

1

这是不可能的。View中的任何RemoteViews一个都只能有一个PendingIntentfor setOnClickPendingIntent()。如果你跟setOnClickPendingIntent()注两次,最后一个获胜。

因此,请只调用一次,然后WakeUp调用sendBroadcast()以完成您的第二次操作。

此外,请替换getApplicationContext()this,因为您不需要任何此代码中的应用程序上下文。

于 2013-06-04T13:41:18.050 回答