Frage

Veröffentlicht: Mo 30. November 2009 05.08 Betreff des Beitrags: Einfaches Problem mit der Absicht Extras Hallo,

Ich arbeite an einem App-Widget für den Startbildschirm. Ich versuche, es so zu machen, wenn ein Benutzer auf dem Widget tippt er die Daten ändert im Widget angezeigt werden. Aber ich bin so dass auch mehrere Instanzen von Widgets offen mit unterschiedlichen Daten. Also, um meine Methode zu sagen, was zu aktualisieren Widget, ich bin Hinzufügen einer zusätzliche zu der Absicht, die gestartet wird, um die Daten zu ändern.

Hier ist es die Absicht, die ich habe: 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);

Dies speichert korrekt die Widget-ID, aber wenn die Änderungsdaten-Methode aufgerufen wird, die Widget-ID, die von der Absicht gelesen wird, ist die erste Widget-Instanz. Das heißt, es ist eine for-Schleife, die alle Widgets und egal erzeugt, was Sie tippen Widget, die Widget-ID, die empfangen wird, ist immer die erste Widget-ID in der ersten Widget.

Wer eine Idee hat, wie dieses Problem zu lösen? Hoffentlich habe ich nicht Wort, um es zu schlecht.

Danke für das Lesen, Tony

War es hilfreich?

Lösung

Dies ist ein bekanntes Problem mit PendingIntents; wenn Android PendingIntents vergleicht nicht vergleichen es nicht Intent Extras, so dass Sie mit nur verschiedene Extras die gleichen grundlegenden Intent mehrmals nicht planen. Im Moment können Sie nur dieses Problem lösen, indem die Absicht einzigartig in irgendeiner Weise anders als Extras, wie das Hinzufügen von zusätzlichen Informationen an die Intent-Daten.

Es gibt ein wenig Diskussion darüber auf der Google Android Gruppen: http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top