52 votes

Plusieurs instances de l'intention en suspens

J'ai créé un widget qui, lorsqu'il est cliqué, active un PendingIntent. Le problème est que lorsque j'ai plus d'un widget à l'écran, seul le plus récent démarre le PendingIntent.

J'ai lu des choses sur un code de demande unique, mais je n'ai pas encore trouvé la solution.

Comment puis-je avoir plusieurs widgets et faire en sorte que les PendingIntents fonctionnent pour chacun d'entre eux ?

Voici un extrait de mon code :

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);

111voto

taraloca Points 2847

Il se trouve qu'après avoir posé ma question, j'ai trouvé une réponse. Je passe mon appWidgetId comme code de requête "unique" et voilà ! Voici maintenant l'extrait :

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);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X