Pregunta

Publicado: lunes 30 de noviembre de 2009 5:08 pm Asunto de la publicación: Problema simple con intenciones adicionales Hola

Estoy trabajando en un widget de aplicación para la pantalla de inicio. Estoy tratando de hacerlo para que cuando un usuario toca el widget cambia los datos que se muestran en el widget. Sin embargo, también estoy permitiendo que se abran múltiples instancias de widgets con datos diferentes. Entonces, para decirle a mi método qué widget actualizar, estoy agregando un extra a la intención que se inicia para cambiar los datos.

Aquí está la intención que tengo: 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);

Esto almacena correctamente la identificación del widget, pero cuando se llama al método de cambio de datos, la identificación del widget que se lee desde la intención es la primera instancia del widget. Es decir, hay un bucle for que genera todos los widgets y no importa qué widget toque, la identificación del widget que se recibe siempre es la primera identificación del widget en el primer widget.

¿Alguien tiene una idea sobre cómo resolver esto? Espero no haberlo dicho demasiado mal.

Gracias por leer, Tony

¿Fue útil?

Solución

Este es un problema conocido con PendingIntents; cuando Android compara PendingIntents, no compara Intent extras, por lo que no puede programar el mismo Intent básico varias veces con solo extras diferentes. En este momento, solo puede resolver esto haciendo que la intención sea única de alguna manera que no sea adicional, como agregar información adicional a los datos de la intención.

Hay un poco de discusión sobre esto en el Grupo Google Android: http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top