我需要我的闹钟每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;电池消耗等,但如果我想的话,仍然有一个确切的选项,这就是我认为我实现的。