2010-06-26 4 views
4

J'ai une activité qui utilise un AlarmManager pour appeler un BroadcastReceiver à un moment donné dans le temps. Cela fonctionne très bien, sauf lorsque j'essaie d'ajouter des chaînes supplémentaires à l'intention lors de l'appel du BroadcastReceiver, elles apparaissent toujours comme nulles à l'autre extrémité.données de passage Android de l'activité à BroadcastReceiver montre null

Code d'activité:

Intent intent = new Intent(this, ScheduleReceiver.class); 
    intent.putExtra("testString", "I'm a string"); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 999, intent, 0); 

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC, System.currentTimeMillis(), pendingIntent); 

Code BroadcastReceiver

public void onReceive(Context context, Intent intent) { 
     Log.v(TAG, "TestString: " + intent.getStringExtra("testString")); 
} 

Le contenu de 'TestString' est toujours null dans le BroadcastReceiver, qu'est-ce que je fais mal?

Répondre

7

Essayez d'obtenir avec:

intent.getExtras().get("testString"); 
+1

Je pense qu'il était une combinaison de cela et le fait que j'ajouté le drapeau 'PendingIntent.FLAG_CANCEL_CURRENT' au PendingItent. – jackbot

Questions connexes