gpt4 book ai didi

java - 闹钟管理器唤醒

转载 作者:行者123 更新时间:2023-12-02 10:55:30 27 4
gpt4 key购买 nike

我尝试设置一个后台“服务”,每分钟都会触发一个执行某些操作的 Activity 。我找到了 Alarm Manager 类,并根据 Android 文档编写了以下代码:

Intent backg = new Intent(getApplicationContext(), CheckConnectivity.class);
boolean backgRunning = (PendingIntent.getBroadcast(getApplicationContext(), 0, backg, PendingIntent.FLAG_NO_CREATE) != null);
if(!backgRunning) {
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, backg, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 60000, pendingIntent);
}

但该服务并不是每分钟都会触发,但它似乎只有在屏幕关闭时才工作。你知道为什么吗?我做错了什么?

最佳答案

Alarm Manager 并不可靠,这就是 Android 引入 Job Scheduler 的原因。但是不能使用Job Scheduler<21。所以Android推出了Work Manager Android架构组件中。通过AlarmManager或JobScheduler在内部处理您的工作。

另一个好方法是使用 Evernote's Jobs ,将从下一个版本开始使用 WorkManager。

最后我建议你使用 Work Manager 而不是 AlarmManager。

另请参阅my explanation on Doze mode / Background restrictions .

关于java - 闹钟管理器唤醒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51786106/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com