2010-06-26 4 views
4

AlarmManager를 사용하여 특정 시점에 BroadcastReceiver를 호출하는 액티비티가 있습니다. 이것은 BroadcastReceiver를 호출 할 때 인 텐트에 여분의 문자열을 추가하려고 시도 할 때를 제외하고는 모두 정상적으로 작동하지만 항상 다른 쪽 끝에서 null로 나타납니다.Android에서 Activity에서 BroadcastReceiver로 데이터를 전달하면 null이 표시됩니다.

활동 코드 : 내가 무슨 잘못을하고있는 중이 야

public void onReceive(Context context, Intent intent) { 
     Log.v(TAG, "TestString: " + intent.getStringExtra("testString")); 
} 
'TestString에'의 내용은 항상 브로드 캐스트 리시버에서 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); 

브로드 캐스트 리시버 코드?

답변

7

와 함께 점점보십시오 :

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

내가 그것을이의 조합 나는 PendingItent에'PendingIntent.FLAG_CANCEL_CURRENT' 플래그를 추가 한 사실이었다 생각합니다. – jackbot

관련 문제