2010-09-16 8 views
50

J'ai créé un widget qui, lorsqu'il est cliqué, active un PendingIntent. Le problème est quand j'ai plus d'un widget sur l'écran seulement le dernier commencera le PendingIntent.Plusieurs instances de l'intention en attente

J'ai lu quelques-unes sur un code de requête unique, mais pas compris.

Des idées comment je peux avoir plusieurs widgets et les PendingIntents fonctionnent pour chacun?

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

Répondre

109

se trouve que, après avoir affiché ma question, je suis venu avec une réponse. Je passe dans mon appWidgetId comme le code de requête "unique" et voila! Voici l'extrait maintenant:

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

Honte la documentation ne mentionne pas l'usage officiel de la requestcode ... – barkside

+22

Le pire est que la documentation dit: requestCode \t Code de demande privée pour l'expéditeur (non utilisé actuellement) . Alors je l'ai vu, mais je n'ai pas essayé de l'utiliser parce que je pensais que ça ne marcherait pas! – thiagolr

+0

A travaillé parfait pour moi. THX. – cstick