我创建了多个警报应用程序 . 此警报按时触发一切正常 . 在保存警报时,我已添加,每周,每日和一次功能,用户将能够相应地设置警报 .
在报警触发器上 . 我打盹并取消 .
贪睡:我已经从当前时间加上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?)
1 回答
我的猜测是你使用相同的ID进行常规闹钟 . 在这一行......
...以粗体显示的第一个“0”是警报ID . 如果您使用“0”作为其他警报ID,则您的暂停代码将覆盖之前的警报 . 为贪睡闹钟更改“0”为“1”(或任何其他未使用的值),你应该没事!