Étant donné deux widgets identiques avec des données différentes, A et B, lorsque les données du widget A sont affichées dans l'activité lancée par le widget, que l'on appuie sur le bouton retour et que l'on appuie ensuite sur le widget B, tout fonctionne bien. Cependant, lorsque les données du widget A sont affichées, que l'on appuie sur le bouton d'accueil, puis sur le widget B, les données du widget A sont toujours affichées. À partir de Android - Lorsque l'on lance la même activité à partir d'un widget avec différents extras, comment éviter que la même instance apparaisse après le retour du bouton HOME ? cela suggère que mon problème est que les deux PendingIntents
(pour les widgets A et B) sont les mêmes et ne diffèrent que par les extras et sont donc mis en cache. C'est-à-dire que dans les extras se trouve l'id du widget qui est la clé dont j'ai besoin pour récupérer toutes les données pour l'action widget-press. Une suggestion était d'utiliser des données différentes, mais je n'arrive pas à faire fonctionner cette solution. Voici le code :
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);
Ajout de la setData
à l'intention n'a produit aucune différence. Avez-vous des idées sur la manière de résoudre le problème des intentions en attente de mise en cache ? J'ai également essayé :
intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
et
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
et
intent.setAction("actionstring" + System.currentTimeMillis());
sans aucun effet.