我应该使用AlarmManager或JobScheduler吗?

时间:2017-08-18 15:48:12

标签: java android task alarmmanager job-scheduling

我的数据库中有一个表,每行描述一个计划。例如:

ID   |  CODE   |   DAY    |   TIME
___________________________________
1        1          Mon       8
2        27         Wed       15

换句话说,每个星期一早上8点,调用与代码1对应的函数。每个星期三下午3点,调用对应于代码27的函数等

在Android中适当的时间调用所有这些任务的正确方法是什么?我已经看过AlarmManager和JobScheduler,但我不知道哪一个更适合用于这样的事情。

我不需要时间超精确(事件触发+/-指定时间的几秒甚至几分钟并不是一件大事),但我确实需要它们尽可能触发

4 个答案:

答案 0 :(得分:0)

根据创建警报的要求,警报管理器将更适合您尝试做的一种或另一种方式。

答案 1 :(得分:0)

如果您只需要在没有网络或费用检查的情况下按计划触发事件,则Alarm Manager是轻量级且工作正常的解决方案。

答案 2 :(得分:0)

您可以尝试使用此库来快速实现Alarm Manager。

https://android-arsenal.com/details/1/4755

答案 3 :(得分:0)

将AlarmManager与setExactAndAllowWhileIdle

一起使用

请注意,在棉花糖和之后,由于Doze,使用AlarmManager安排的任务可能会延迟。获得精确计时的唯一方法是使用setAlarmClock,这可能会在某个系统的状态栏中显示闹钟图标。