【发布时间】:2015-12-12 23:31:21
【问题描述】:
我正在开发一个使用 AlarmManager 的 Android 应用程序,如下所示:
Long startTime = Calendar.getInstance().getTimeInMillis();
alarm.setRepeating(
AlarmManager.RTC_WAKEUP,
startTime,
15* 60 * 1000,
PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT));
我想计算startTime。假设我需要在 15 分钟后重复运行一些代码,但是 15 分钟后不应该从现在(当前时间)开始,而是从下一个插槽开始。每当我启用警报时,它应该从下一个可用插槽开始(这意味着我需要计算开始时间)。
示例 1:如果当前时间是 10:8,那么第一次运行应该在 10:15。
示例 2:如果是 10:17,那么首先应该在 10:30 运行。
示例 3:如果是 10:38,那么第一次运行应该在 10:45。
由于 AlarmManager 以毫秒为单位接受 2 个时间参数,第一个是启动警报的时间,第二个作为重复时间,以毫秒(15 分钟)为单位。
如果仍然不清楚,那么我会说我需要在设备的分钟数是以下值之一时运行我的代码: 00、15、30、45,与设备的小时值无关。
【问题讨论】:
标签: android time alarmmanager repeatingalarm