WorkerManager 是在应用程序中实现 alarm/reminder 功能的可靠方法吗?
Is WorkerManager a realiable way to implement alarm/reminder feature in the app?
我们注意到 AlarmManagerCompat
本身并不是在我们的应用程序中实现警报/提醒功能的可靠方法,因为 OS 的不同版本中的行为不同 AlarmManager
。 (例如,打瞌睡模式)
最初,我们计划使用 Evernote 的 android-job 库,以帮助我们在应用程序中实现闹钟/提醒功能。
然而,一路走来,我们也注意到Google只是释放了WorkerManager
。
到目前为止,WorkerManager
对我们来说效果很好,当我们在应用程序退出后 运行 一些一次性后台作业(几乎立即,有互联网连接限制)时。
我们计划使用 WorkerManager
来实现警报/提醒功能。
我想知道,WorkerManager
实现这样的功能有多可靠?有人试过吗?我们的目标是 API 15 岁及以上。
WorkManager 不适用于任何必须在特定时间触发的作业,包括 WorkManager 使用的作业或 android-job,在设备打瞌睡时不会触发。
对于准确的时间,您绝对应该使用 AlarmManagerCompat
,特别是 setExactAndAllowWhileIdle(),它会在所有 API 级别的指定时间触发警报。
由于您的确切定时闹钟可以并且将会在设备打瞌睡时发生,因此您的应用不应要求网络连接到 post 您的 alarm/reminder 通知。理想情况下,信息应该在 PendingIntent
本身,甚至不需要任何数据库 fetch/etc.
我们注意到 AlarmManagerCompat
本身并不是在我们的应用程序中实现警报/提醒功能的可靠方法,因为 OS 的不同版本中的行为不同 AlarmManager
。 (例如,打瞌睡模式)
最初,我们计划使用 Evernote 的 android-job 库,以帮助我们在应用程序中实现闹钟/提醒功能。
然而,一路走来,我们也注意到Google只是释放了WorkerManager
。
到目前为止,WorkerManager
对我们来说效果很好,当我们在应用程序退出后 运行 一些一次性后台作业(几乎立即,有互联网连接限制)时。
我们计划使用 WorkerManager
来实现警报/提醒功能。
我想知道,WorkerManager
实现这样的功能有多可靠?有人试过吗?我们的目标是 API 15 岁及以上。
WorkManager 不适用于任何必须在特定时间触发的作业,包括 WorkManager 使用的作业或 android-job,在设备打瞌睡时不会触发。
对于准确的时间,您绝对应该使用 AlarmManagerCompat
,特别是 setExactAndAllowWhileIdle(),它会在所有 API 级别的指定时间触发警报。
由于您的确切定时闹钟可以并且将会在设备打瞌睡时发生,因此您的应用不应要求网络连接到 post 您的 alarm/reminder 通知。理想情况下,信息应该在 PendingIntent
本身,甚至不需要任何数据库 fetch/etc.