2012-09-20 16 views
5

estoy enviando un código de solicitud a través de este a un gestor de alarmaRecuperar requestcode de BroadcastReceiver alarma

Intent broadcast_intent = new Intent(this, AlarmBroadcastReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, rowId, broadcast_intent, PendingIntent.FLAG_UPDATE_CURRENT); 

me preguntaba, que en el BroadcastReceiver, ¿cómo puedo retreive la requestcode (ROWID) que he usado para configurar pendingIntent?

Gracias

+0

¿Todavía no tiene respuesta? Comon – Snake

Respuesta

2

que estaba buscando lo mismo. Una forma sería pasar requestcode como extra en su Intento.

intent.putExtra("requestcode", rowId); 

Sin embargo, si la aplicación se mata no hay manera de recuperar los datos transmitidos por la Intención.

Por lo tanto, debe pasar rowId como un URI y usar el filtro de intenciones.

+0

Si se elimina la aplicación, la alarma seguiría registrándose. Entonces, al vencimiento aún podrá obtener el código de requets no? – Snake

+0

No, la alarma todavía está registrada pero los datos adicionales contenidos en la intención se perderán. Lo intenté. –

+0

ahh Ya veo, cualquier explicación de por qué es eso – Snake

2
Intent broadcast_intent = new Intent(this, AlarmBroadcastReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, rowId, 
           broadcast_intent,PendingIntent.FLAG_UPDATE_CURRENT 
          ); 

mejor sería pasar los extras mientras se hace referencia broadcast_intent dentro getBroadcast() - broadcast_intent.putExtras("REQUESTCODE",rowId) ; de la siguiente manera:

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, rowId, 
           broadcast_intent.putExtras("REQUESTCODE",rowId), 
           PendingIntent.FLAG_UPDATE_CURRENT); 
2

El requestCode utiliza al crear un pendingIntent no tiene la intención de transmitir al receptor, se pretende que una forma de que la aplicación cree el pendienteInternet para poder administrar varios pendientesInternet.

Supongamos que se necesita una aplicación de alarma para crear varios Elementos pendientes, y luego necesita cancelar o modificar uno de ellos. El requestCode se usa para identificar cuál cancelar/modificar.

Para pasar datos, use putExtra como se describe arriba. Tenga en cuenta que es posible que desee utilizar RowId para el requestCode y los datos adicionales.

Cuestiones relacionadas