WorkManager vs AlarmManager,视情况使用什么
WorkManager vs AlarmManager, what to use depending on the case
我必须执行这个用例(不是代码,只是正确的用法)
用例:我需要每天在00:30从网络获取一些数据。这些数据为我提供了一些特定时间,其中一个是在 4:30 左右(每天变化 +1 分钟 -1 分钟,取决于服务器响应,不能在任何地方使用 ++ 或 -- 逻辑)。在这个 (4:30) 上,我需要安排一个 Alarm 。不清楚的地方:
我应该为此直接使用 AlarmManager 吗?
我应该使用 WorkManager 来获取我需要报警的时间而不是使用 AlarmManager 吗?
我应该只使用 WorkManager 吗?
我之所以感到困惑,是因为我读过的一些博客说,如果我在特定时间有一些工作,最好坚持使用 AlarmManager,但我仍然可以使用 WorkManager
那么这是怎么做到的?
Should I use AlarmManager directly for this ?
是的,你应该。据我所知,AlarmManager 是处理像您这样的任务的最佳选择,也是处理 doze mode 时更安全的选择。使用第一个闹钟在特定时间设置第二个闹钟。
Should I use WorkManager to get the time when I need to alarm and than use AlarmManager ?
如果您想使用这种方法,您需要调用 AlarmManager 并在 WorkManager 上调度一个 Worker。 WorkManager需要运行在特定时间前执行,不保证Worker在4.30前完成或执行。
The reason why I am confused is because some blogs I have read say that is better to stick to AlarmManager if I have some work at a specific time, but still, I can do it with WorkManager
WorkManager 不保证执行时间。以后说不定可以做到这一点。
Should I just use WorkManager ?
没有,原因如前所述。
如果您想使用作业调度程序,Android-Job 是您用例的短期响应。如果您转到 link.
,您还可以看到 table 的功能和差异
编辑 2020 年 3 月 17 日:
Android-Job 已弃用。
我必须执行这个用例(不是代码,只是正确的用法) 用例:我需要每天在00:30从网络获取一些数据。这些数据为我提供了一些特定时间,其中一个是在 4:30 左右(每天变化 +1 分钟 -1 分钟,取决于服务器响应,不能在任何地方使用 ++ 或 -- 逻辑)。在这个 (4:30) 上,我需要安排一个 Alarm 。不清楚的地方:
我应该为此直接使用 AlarmManager 吗?
我应该使用 WorkManager 来获取我需要报警的时间而不是使用 AlarmManager 吗?
我应该只使用 WorkManager 吗?
我之所以感到困惑,是因为我读过的一些博客说,如果我在特定时间有一些工作,最好坚持使用 AlarmManager,但我仍然可以使用 WorkManager
那么这是怎么做到的?
Should I use AlarmManager directly for this ?
是的,你应该。据我所知,AlarmManager 是处理像您这样的任务的最佳选择,也是处理 doze mode 时更安全的选择。使用第一个闹钟在特定时间设置第二个闹钟。
Should I use WorkManager to get the time when I need to alarm and than use AlarmManager ?
如果您想使用这种方法,您需要调用 AlarmManager 并在 WorkManager 上调度一个 Worker。 WorkManager需要运行在特定时间前执行,不保证Worker在4.30前完成或执行。
The reason why I am confused is because some blogs I have read say that is better to stick to AlarmManager if I have some work at a specific time, but still, I can do it with WorkManager
WorkManager 不保证执行时间。以后说不定可以做到这一点。
Should I just use WorkManager ?
没有,原因如前所述。 如果您想使用作业调度程序,Android-Job 是您用例的短期响应。如果您转到 link.
,您还可以看到 table 的功能和差异编辑 2020 年 3 月 17 日: Android-Job 已弃用。