我有调用广播接收器的代码,在接收器中,我尝试从 Intent 中获取额外的数据,但它是空的。
所以,
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");
但是医学是无效的。我错过了什么?
最佳答案
只需创建带有标志 PendingIntent.FLAG_UPDATE_CURRENT
的 PendingIntent ,
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。
关于java - 如何将数据从 Activity 传递到 BroadcastReceiver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9124948/