2012-02-03 87 views
1

我有調用廣播接收器的代碼,在接收器中,我嘗試從意圖中獲取額外的數據,但它是空的。如何將數據從活動傳遞給broadcastReceiver?

所以,

 Intent intent = new Intent(MainActivity.this, CallAlarm.class); 
          intent.putExtra("medicine", "kkk"); 

          PendingIntent sender=PendingIntent.getBroadcast(
            MainActivity.this,0, intent, 0); 

          AlarmManager am; 
          am = (AlarmManager)getSystemService(ALARM_SERVICE); 
          am.set(AlarmManager.RTC_WAKEUP, 
           c.getTimeInMillis(), 
           sender 
           ); 

,並在BroadcastReceiver.onReceiver(),

String name = i.getStringExtra("medicine"); 

但藥是空的。我錯過了什麼?

+0

我在做類似的事情! http://stackoverflow.com/questions/14571564/android-pendingintent-extras-not-received-by-broadcastreceiver/14612215#14612215 – toobsco42 2013-01-31 07:51:29

回答

2

剛剛創建的PendingIntent與標誌PendingIntent.FLAG_UPDATE_CURRENT

Intent intent = new Intent(MainActivity.this, CallAlarm.class); 
intent.putExtra("medicine", "kkk"); 
PendingIntent sender=PendingIntent.getBroadcast(
            MainActivity.this,0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

這將使你的數據傳遞給廣播接收器。

+0

非常感謝!這真的幫助我 – 2012-02-03 08:00:57

0

我正在嘗試上面的代碼,我得到的值始終爲空。我的廣播接收器在啓動時啓動,所以除了上面的代碼,我還添加了intent.setAction(「android.intent.action.BOOT_COMPLETED」);

它仍然給我空。

相關問題