2010-09-16 29 views
50

我創建了一個小部件,點擊後可激活PendingIntent。問題是當我在屏幕上有多個小部件時,只有最新的一個將啓動PendingIntent。待定意圖的多個實例

我已閱讀了一些關於唯一請求代碼的內容,但沒有弄清楚這一點。

任何想法如何讓多個小工具和PendingIntents爲每個工作?

這裏是我的代碼片段:

Intent openApp = new Intent(context, RunningTally.class); 
    openApp.putExtra("widgetId", appWidgetId); 
    PendingIntent pendingAppIntent = 
     PendingIntent.getActivity(context, 0, openApp, PendingIntent.FLAG_CANCEL_CURRENT ); 
    views.setOnClickPendingIntent(R.id.openFull, pendingAppIntent); 

回答

109

恰巧發佈我的問題後,我想出了一個答案。我通過我的appWidgetId作爲「唯一」的請求代碼,瞧!以下是摘錄現在:

Intent openApp = new Intent(context, RunningTally.class); 
    openApp.putExtra("widgetId", appWidgetId); 
    PendingIntent pendingAppIntent = 
     PendingIntent.getActivity(context, appWidgetId, openApp, 
            PendingIntent.FLAG_CANCEL_CURRENT); 
    views.setOnClickPendingIntent(R.id.openFull, pendingAppIntent); 
+7

恥辱的文件沒有提到的公務requestcode的... – barkside 2012-07-11 14:34:16

+22

最糟糕的是,該文件說:發件人requestCode \t私人請求的代碼(目前未使用) 。所以我看到了它,但我沒有嘗試使用它,因爲我認爲它不起作用! – thiagolr 2012-09-13 18:37:27

+0

完美適合我。謝謝。 – cstick 2013-04-01 02:14:23