我需要每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;电池消耗等但仍然有一个选项,如果我想要的确切,这就是我认为我实施的。
答案 0 :(得分:2)
试试这个:
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (2 * 1000), (30 * 1000), pendingIntent);
更改延迟时间2或更长时间,以便在开始时报警。