首页 > 解决方案 > 即使我的应用程序不存在于“最近”中,哪个是 android 中最好的时间调度程序?

问题描述

我正在使用警报管理器,但执行取决于他的心情,有时警报管理器工作,有时它不工作。下面是带有待处理意图的警报管理器代码

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 秒

标签: androidandroid-intentalarmmanagerandroid-pendingintent

解决方案


调用AlarmManager.set()不准确。它曾经是精确的(在 API 19 之前),但随着时间的推移已经改变,以延长电池寿命。

如果您需要闹钟在准确的时间响起,那么您需要使用AlarmManager.setExact(). 如果您查看文档,AlarmManager会有很多关于如何使用它的提示。一般来说,不鼓励设置准确的警报,因为这会阻止 Android 使用其省电技术。


推荐阅读