我有一個鏈接到我的應用程序中的活動的小部件。我鏈接PendingIntent
此類似,所以我AppWidgetProvider
內:Appwidget點擊跨多個實例的意圖
public class SampleWidget extends AppWidgetProvider {
@Override
public void onUpdate([…]) {
RemoteViews views = […]
for (int appWidgetId : appWidgetIds) {
final Intent intent = new Intent(context, SomeActivity.class);
intent.putExtra(EXTRA_KEY, extraValue);
final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.view_name, pendingIntent);
}
}
}
的extraValue
是基於內容的小部件顯示,所以它可以通過一些小部件可以共享,但並不總是被所有。我試着在這裏記錄分配的值,並且我可以確認正確的值被存儲在正確的小部件中。當我在View
與ID view_name
在點擊任意小部件,但是,我從在啓動的活動創建(因爲手機重啓)第一配件,而不是具體的小部件我拍了拍價值的價值。看來,有可能是某種的View
的單個實例以及與setOnClickPendingIntent()
分配多個PendingIntent
s到它導致只有第一個被用來?有沒有一種方法可以將數據附加到Intent中,而無需代碼來確定基於調用小部件顯示的內容?
傳遞給'getActivity'第二個參數應該是唯一的,而不是0 – pskink
這是絕對的問題!請寫一個答案,以便我可以接受它! ([關於使用'requestCode'參數的一個很好的基準的問題](https://stackoverflow.com/questions/21526319/whats-requestcode-used-for-on-pendingintent)) – RedBassett
嗯,一個人在[此處] (https://stackoverflow.com/questions/21526319/whats-requestcode-used-for-on-pendingintent#comment54219506_21526319)(參考問題,你上面貼)聲稱,它不會再工作下去(22+ API),試穿API> = 22? – pskink