只要应用程序打开,AlarmManager就会关闭

时间:2015-06-11 12:44:39

标签: java android android-notifications

我正在尝试将AlarmManager设置为在白天的特定时间内关闭。这是我目前的代码 -

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 16);
calendar.set(Calendar.SECOND, 0);

long time = calendar.getTimeInMillis();
Intent intent = new Intent(MainActivity.this, Drawing.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
        MainActivity.this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

am.setRepeating(AlarmManager.RTC_WAKEUP, time,
        AlarmManager.INTERVAL_DAY, pendingIntent);

绘图类显示通知。闹钟会在正确的时间响起,但只要应用程序重新打开,通知就会立即响起。

我知道它与绘图类无关,因为当我将警报设置为只使用System.currentTimeInMillis()+ 10秒时,即使应用程序重新打开也能正常工作。

有什么想法吗?我的逻辑出了什么问题?

1 个答案:

答案 0 :(得分:4)

您没有检查过去是否calendar,因为它将是时间的2/3(即,此代码在08:16之后运行的任何时间)。在这种情况下,你需要每天add(),明天8:16。