При наличии двух идентичных виджетов с разными данными, A и B, когда данные для виджета A отображаются в активности, запущенной виджетом, нажимается кнопка «Назад», а затем - виджет B, все работает нормально.Однако, когда отображаются данные для виджета A, нажимается кнопка «Домой», а затем - виджет B, данные для виджета A по-прежнему отображаются.От Android - при запуске одного и того же действия из виджета с различными дополнительными функциями, как предотвратить появление одного и того же экземпляра после возврата из кнопки HOME? предполагает, что моя проблема в том, что оба PendingIntents
(для виджетов A иБ) одинаковы и отличаются только дополнениями и поэтому кэшируются.Т.е. в дополнениях есть идентификатор виджета, который является ключом, который мне нужен, чтобы получить все данные для действия виджета-нажатия.Одним из предложений было использование разных данных, но я не могу заставить это работать.Вот код:
Intent intent = new Intent(context, WidgetActivity.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setData(Uri.withAppendedPath(Uri.parse("droidln://widget/id/"),
String.valueOf(appWidgetId)));
PendingIntent pendingIntent =
PendingIntent.getActivity(context, appWidgetId, intent, 0);
Добавление setData
к цели не принесло никакой разницы.Любые идеи о том, как исправить мою проблему с кэшированными отложенными намерениями?Я также пробовал:
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
и
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
и
intent.setAction("actionstring" + System.currentTimeMillis());
все безрезультатно.