У меня есть два (или более) виджета, например, A и B, которые должны запускать одно и то же действие, передавая их appWidgetId
в дополнениях Intent
к действию.Это прекрасно работает после установки приложения при первом запуске с любого из виджетов (активность получает правильный appWidgetId
).Это также работает нормально, если я нажимаю кнопку «Назад» после запуска активности и запускаю активность из другого виджета.Однако, если я запускаю активность из виджета A, нажимаю кнопку «Домой» и затем запускаю активность из виджета B (или C или D ...), которая запускается с A * appWidgetId
.Я озадачен тем, как это исправить.Вот как я объявляю свой PendingIntent
:
Intent intent = new Intent(context, WidgetActivity.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setAction(this.getClass().getName() + System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
Если я правильно понимаю, я успешно настраиваю уникальный PendingIntents для каждого виджета.Любая помощь наиболее ценится!
РЕДАКТИРОВАТЬ : Принятый ответ на этот вопрос предполагает, что:
Я считаю, что проблема заключается в том, что выиметь PendingIntent, который отличается только на дополнительные.PendingIntents кэшируются, поэтому, если вы используете два с одинаковыми действием и данными, они будут перезаписывать друг друга.
Однако мой код создает случайные действия для выполнения, и поэтому я думаю, что PendingIntents отличается болеечем просто дополнительные услуги