Android Alarm Manager在不准确的时间间隔内重复播放

时间:2016-01-31 13:57:17

标签: android alarmmanager android-alarms repeatingalarm

我需要每30秒发射一次警报 - 尽可能准确(+/- 3秒)。所以我读了this(官方Android指南)并实现了这个:

AlarmManager alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, MyService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 30000, pendingIntent);

结果:警报每50秒触发+/-,如果我给出30秒的间隔,则不会那么准确。

问题在哪里以及这里发生了什么?在文档中,他们说自从cpu& amp;电池消耗等但仍然有一个选项,如果我想要的确切,这就是我认为我实施的。

1 个答案:

答案 0 :(得分:2)

试试这个:

alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (2 * 1000), (30 * 1000), pendingIntent);

更改延迟时间2或更长时间,以便在开始时报警。