2010-06-26 3 views
4

У меня есть активность, которая использует AlarmManager для вызова BroadcastReceiver в определенный момент времени. Все это прекрасно работает, за исключением случаев, когда я пытаюсь добавить дополнительные строки к намерению при вызове BroadcastReceiver, они всегда появляются как нулевые на другом конце.Android, передающий данные из Activity to BroadcastReceiver, показывает null

код активность:

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

BroadcastReceiver код

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

Содержание 'TestString' всегда в BroadcastReceiver null, что я делаю неправильно?

ответ

7

Попробуйте получить его:

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

Я думаю, что это было сочетание этого и тот факт, что я добавил 'PendingIntent.FLAG_CANCEL_CURRENT' флаг в PendingItent. – jackbot

Смежные вопросы