【发布时间】:2011-02-20 02:50:05
【问题描述】:
在写这个问题时解决了,但发布以防万一:
我正在设置多个这样的警报,id 的值不同:
AlarmManager alarms = (AlarmManager)context.getSystemService(
Context.ALARM_SERVICE);
Intent i = new Intent(MyReceiver.ACTION_ALARM); // "com.example.ALARM"
i.putExtra(MyReceiver.EXTRA_ID, id); // "com.example.ID", 2
PendingIntent p = PendingIntent.getBroadcast(context, 0, i, 0);
alarms.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 300000, p); // 5 mins
...并像这样接收它们:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_ALARM)) {
// It's time to sound/show an alarm
final long id = intent.getLongExtra(EXTRA_ID, -1);
警报会在正确的时间发送到我的接收器,但通常会将 EXTRA_ID 设置为错误的值:这是我在某个时候使用过的值,而不是我希望在那个特定时间发送的值.
【问题讨论】:
标签: android android-pendingintent extras alarms