19

我们注意到AlarmManagerCompat,由于AlarmManager不同版本的操作系统的行为不同,仅此一项并不是在我们的应用程序中实现警报/提醒功能的可靠方法。(例如,打盹模式)

最初,我们计划使用 Evernote 的android-job库来帮助我们在我们的应用程序中实现警报/提醒功能。

然而,一路走来,我们也注意到谷歌刚刚发布了WorkerManager.

到目前为止WorkerManager,当我们在应用程序退出后运行一些一次性后台作业(几乎立即,具有互联网连接限制)时,对我们来说效果很好。

我们计划使用WorkerManager来实现警报/提醒功能。

WorkerManager我想知道,实现这样的功能有多可靠?有人尝试过吗?我们的目标是 API 15 及更高版本。

4

1 回答 1

17

WorkManager 不适用于必须在特定时间触发的任何作业,包括 WorkManager 或 android-job 使用的作业,在设备打瞌睡时不会触发。

对于确切的时间,您绝对应该使用AlarmManagerCompatsetExactAndAllowWhileIdle (),它会在所有 API 级别的指定时间触发警报。

由于您的确切定时警报可以并且将会在设备打瞌睡时发生,因此您的应用不应该需要网络连接来发布您的警报/提醒通知。理想情况下,信息应该在其PendingIntent本身中,甚至不需要任何数据库获取/等。

于 2018-05-26T21:28:12.997 回答