我创建了多个闹钟应用。此警报按时触发一切正常。在保存警报时,我已添加,每周,每日和一次功能,用户将能够相应地设置警报。
开启警报触发器。我打盹并取消。
暂停:我已经从当前时间加上10分钟来打盹 取消:刚完成() - 这样它就可以触发第二天或下周(相应地)
点击“暂停”按钮时,我设置的所有闹钟都会被取消,10分钟后只会触发一次。这有点奇怪吗?不确定问题出在哪里?
这是我在我的Snoozeactivity(从广播接收器调用)中尝试的内容
SnoozeActivity的OnCreate:
我得到小时,分钟,上午/下午,并加入10分钟并设置闹钟。
if (ampm.equalsIgnoreCase("AM"))
{
ampm = "0";
}
else if (ampm.equalsIgnoreCase("PM"))
{
ampm = "1";
}
Calendar alarmCalendar = Calendar.getInstance();
alarmCalendar.set(Calendar.HOUR, Integer.valueOf(hours));
alarmCalendar.set(Calendar.MINUTE, Integer.valueOf(mins));
alarmCalendar.set(Calendar.SECOND, 0);
alarmCalendar.set(Calendar.AM_PM, Integer.valueOf(ampm));
currenttime = alarmCalendar.getTimeInMillis() + 600000;
AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
Intent intent = new Intent(SnoozeActivity.this, AlarmReciever.class);
intent.putExtra("keyValue", key);
PendingIntent pi = PendingIntent.getBroadcast(AlarmSnooze.this, 0, intent, 0);
am.set(AlarmManager.RTC_WAKEUP, currenttime, pi);
finish();
是因为PendingIntent(Flag?)
答案 0 :(得分:3)
我的猜测是你使用相同的ID进行常规闹钟。在这一行......
PendingIntent pi = PendingIntent.getBroadcast(AlarmSnooze.this, 0 ,intent,0);
...以粗体显示的第一个“0”是警报ID。如果您使用“0”作为其他警报ID,则您的暂停代码将覆盖之前的警报。为贪睡闹钟更改“0”为“1”(或任何其他未使用的值),你应该没事!