首页 文章

警报android中的贪睡功能

提问于
浏览
1

我创建了多个警报应用程序 . 此警报按时触发一切正常 . 在保存警报时,我已添加,每周,每日和一次功能,用户将能够相应地设置警报 .

在报警触发器上 . 我打盹并取消 .

贪睡:我已经从当前时间加上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 回答

  • 3

    我的猜测是你使用相同的ID进行常规闹钟 . 在这一行......

    PendingIntent pi = PendingIntent.getBroadcast(AlarmSnooze.this,0,intent,0);

    ...以粗体显示的第一个“0”是警报ID . 如果您使用“0”作为其他警报ID,则您的暂停代码将覆盖之前的警报 . 为贪睡闹钟更改“0”为“1”(或任何其他未使用的值),你应该没事!

相关问题