我有一个Activity,运行以下代码(时间和间隔已定义):
Intent buzzIntent = new Intent(getBaseContext(), BuzzReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, buzzIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
buzzIntent.putExtra("interval", interval);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, interval * 60 * 1000, pendingIntent);
同时还需要一个 BroadcastReceiver,其 onReceive 函数如下所示:
@Override
public void onReceive(Context context, Intent intent) {
try {
int interval = intent.getIntExtra("interval", -1);
<... more code ...>
} catch (Exception e) {
e.printStackTrace();
}
}
但是intent.getIntExtra()返回-1(这不是Activity中interval的值,我已经检查过),所以出于某种原因,BroadcastReceiver没有获得存储在Activity中意图中的额外信息。我尝试了很多不同的方法,但似乎没有什么作用。我错过了什么吗?