2

我的 Android 应用程序通过在特定时间发送通知来帮助用户遵循他们的日常计划。使用 JobScheduler 可以轻松解决此任务。这似乎是简单、轻便和最新的解决方案。

我正在苦苦挣扎的是如何计划每天的所有通知。我需要运行代码来检查用户每日计划并在每天午夜静默地安排通知。到目前为止,我发现了 2 种方法

使用作业服务。它可以重新安排

public final void jobFinished(JobParameters params, boolean needsReschedule)

但我认为这是一个不好的解决方案,因为

  1. 我需要将完成的工作视为失败,尽管它是成功的

  2. 计划时间将线性/指数增加,这对我来说是不可接受的。

另一种方法是使用 AlarmManager,但它也有一些缺点

  1. 根据文档

已注册的闹钟在设备处于睡眠状态时会保留(如果在此期间它们响起,可以选择唤醒设备),但如果关闭并重新启动,则会被清除。

这是不可接受的,因为我的用户可能会错过一些重要的事情。

  1. 我读过它很快就会耗尽电池。真的吗?

我在文档中找到的其他解决方案看起来不像我需要的。(https://developer.android.com/topic/performance/scheduling.html

任何想法如何每天运行计划任务,这将是轻量级和有弹性的重启?

4

2 回答 2

0

使用 JobService 很好。你不需要重新安排你的工作。只需根据需要创建新工作。

于 2017-02-18T11:12:00.090 回答
0

我在安排闹钟方面也有自己的问题。更糟糕的是,从 Android 6 开始,有延迟警报执行的打盹模式。

请看一下:https ://developer.android.com/training/monitoring-device-state/doze-standby.html

对于警报,您可以有一个启动完成侦听器并在重新启动时重新安排警报。如果您在警报触发期间不需要网络连接,请查看上述链接中的Adapting your app to Doze 。

于 2017-02-18T18:11:13.497 回答