2010-09-16 15 views
50

Creé un widget que cuando se hace clic activa un PendingIntent. El problema es que cuando tengo más de un widget en la pantalla, solo el último iniciará PendingIntent.Múltiples instancias de intención pendiente

He leído algo sobre un código de solicitud único, pero no lo he descubierto.

¿Alguna idea de cómo puedo tener varios widgets y los PendingIntents funcionan para cada uno?

Aquí hay un fragmento de mi código:

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

Respuesta

109

da la circunstancia de que, después de la publicación de mi pregunta, se me ocurrió una respuesta. Paso en mi appWidgetId como el código de solicitud "único" y ¡listo! Aquí está el fragmento de ahora:

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

una lástima que la documentación no menciona el uso oficial de la requestcode ... – barkside

+22

Lo peor es que la documentación dice: requestCode \t código de solicitud privada para el remitente (actualmente no se utiliza) . ¡Así que lo vi, pero no intenté usarlo porque pensé que no funcionaría! – thiagolr

+0

Funcionó perfecto para mí. Gracias. – cstick

Cuestiones relacionadas