Question

Publié le Lun 30 Nov 2009 17:08 Sujet de la publication: Simple Problem With Intent Extras Bonjour,

Je travaille sur un widget d'application pour l'écran d'accueil. J'essaie de faire en sorte que lorsqu'un utilisateur appuie sur le widget, il modifie les données affichées dans le widget. Cependant, j'autorise également l'ouverture de plusieurs instances de widgets avec des données différentes. Donc, afin de dire à ma méthode quel widget mettre à jour, j'ajoute un extra à l'intention qui est lancée pour changer les données.

Voici l'intention que j'ai: Java:

Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA"); 
changeData.putExtra("widget_id", currentWidgetId); 
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0); 
//This will return the correct value, but if I call it in my onreceive() method it won't.
Log.v(TAG, "stored id is: " + changeData.getIntExtra("widget", 0);

Ceci stocke correctement l'identifiant du widget, mais lorsque la méthode de modification de données est appelée, l'identifiant du widget lu dans l'intention est la première instance du widget. Autrement dit, il existe une boucle for qui génère tous les widgets et, quel que soit le widget que vous tapez, l'identifiant de widget reçu est toujours le premier identifiant de widget dans le premier widget.

Quelqu'un a une idée sur la façon de résoudre ce problème? J'espère que je ne l'ai pas trop mal exprimé.

Merci d'avoir lu, Tony

Était-ce utile?

La solution

Il s'agit d'un problème connu avec PendingIntents; Lorsque Android compare PendingIntents, il ne compare pas les extras d'intention. Vous ne pouvez donc pas planifier plusieurs fois le même objectif de base avec des extras différents. Pour le moment, vous ne pouvez résoudre ce problème qu'en rendant l’intention unique, autrement que par des extras, comme l’ajout d’informations supplémentaires aux données de l’intention.

Il y a un peu de discussion à ce sujet sur le groupe Google Android: http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top