我试图在每分钟之上触发报警。但由于某种原因,它不想工作。这是一个应该每分钟更新一次的Widget Clock。由于电池的原因,我已经做了一个关闭屏幕的接收器。所以我的闹钟只在屏幕开启时才会触发。分钟应与我的系统时钟同步。Alarmmanager - 每分钟之上的火警报警
public static void startClockTickAlarm() {
AlarmManager alarmManager = (AlarmManager)_context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 1);
calendar.add(Calendar.HOUR, 1);
alarmManager.setRepeating(AlarmManager.RTC, utcMillisNextMin(), 60000, createClockTickIntent(_context));
}
public static final long utcMillisNextMin() {
Time t = new Time();
t.setToNow();
t.second = 0;
t.minute++;
System.out.println("Next Alarm: " + t.hour + ":" + t.minute + ":" + t.second);
return t.normalize(true);
}
我的System.out完全给出了它的用途。例如,我在11:30:15启用了我的小部件,返回的结果是11:31:00 - 这意味着我的闹钟应该在11:31首先启动。根据我的系统时钟,警报太晚了5-15秒。警报触发太迟的秒数并不总是相同的(5到15秒之间)。
在此先感谢。
您的设备上有哪些API级别? – 2014-10-10 15:51:02
如果出现问题,请发布logcat输出。 – 2014-10-10 15:51:31
我的设备是Android 4.4.4,我的目标是21,最小api是14. – zFr3eak 2014-10-10 15:52:33