我正在使用警报管理器,但执行取决于他的情绪,有时警报管理器工作,有时不工作。下面是带有待定意图的报警管理器的代码
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(SetupFakeVideoCall.this, MyBroadcastVideoReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(SetupFakeVideoCall.this, 0, intent, 0);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, afterTimeVid);
assert alarmMgr != null;
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);
afterTimeVid是我给它来执行的时间。
例如,afterTimeVid = 1500,持续15秒
发布于 2020-07-24 20:25:17
对AlarmManager.set()
的调用并不精确。它过去是精确的(在API 19之前),但随着时间的推移,这一点已经改变,以提高电池寿命。
如果你需要闹钟在准确的时间响起,那么你需要使用AlarmManager.setExact()
。如果你看一下documentation for AlarmManager
,会有很多关于如何使用它的提示。一般来说,不鼓励设置精确的闹钟,因为这会阻止Android使用其省电技术。
https://stackoverflow.com/questions/63068617
复制相似问题