Domanda

Inserito: Lun 30 Nov 2009 17:08 Oggetto del messaggio: Simple Problem With Intent Extras Ciao

Sto lavorando a un widget app per la schermata principale. Sto cercando di farlo in modo che quando un utente tocca il widget cambia i dati visualizzati nel widget. Tuttavia, sto anche consentendo l'apertura di più istanze di widget con dati diversi. Quindi, per dire al mio metodo quale widget aggiornare, sto aggiungendo un extra all'intento che viene avviato per modificare i dati.

Ecco l'intento che ho: 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);

Questo memorizza correttamente l'id del widget, ma quando viene chiamato il metodo di modifica dei dati, l'id del widget letto dall'intento è la prima istanza del widget. Cioè, esiste un ciclo for che genera tutti i widget e indipendentemente dal widget che tocchi, l'ID widget che viene ricevuto è sempre il primo ID widget nel primo widget.

Qualcuno ha un'idea su come risolverlo? Spero di non averlo scritto troppo male.

Grazie per aver letto, Tony

È stato utile?

Soluzione

Questo è un problema noto con PendingIntents; quando Android confronta PendingIntents non confronta gli extra di intenti, quindi non è possibile pianificare più volte lo stesso intento di base solo con extra diversi. Al momento, puoi risolverlo solo rendendo l'intento unico in qualche modo diverso dagli extra, come l'aggiunta di informazioni extra ai dati degli intenti.

C'è un po 'di discussione di questo sul gruppo Google Android: http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top