2012-02-03 5 views
1

私は受信機で放送受信機を呼び出すコードを持っていますが、私は意図から余分なデータを取得しようとしますが、それはnullです。activityから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"); 

が、薬はnullです。私は何が欠けていますか?

+0

私は何か似たようなことをしています! http://stackoverflow.com/questions/14571564/android-pendingintent-extras-not-received-by-broadcastreceiver/14612215#14612215 – toobsco42

答えて

2

ちょうど

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

これはBroadCastReceiverにデータを渡すことができます、フラグPendingIntent.FLAG_UPDATE_CURRENTでPendingIntentを作成します。

+0

ありがとうございます!それは本当に私を助けている –

0

私は上記のコードを試していましたが、私は常に値nullを取得します。私のブロードキャスト受信機は起動時に起動するので、上記のコードとは別にintent.setAction( "android.intent.action.BOOT_COMPLETED");

まだそれは私にnullを与える。

関連する問題