如何使用WorkManager安排通知?

Ank*_*pta 9 android android-jetpack android-workmanager

我想在每次用户在数据库中添加特定时间的注释时安排通知.虽然有多种方法可以使用AlarmManager,BroadcastReceiver等.如何使用WorkManager完成?

ian*_*ake 7

WorkManager 不适合需要在特定时间进行的工作。

您应该使用AlarmManager,特别是AlarmManagerCompat.setExactAndAllowWhileIdle()来在特定时间获取回调。

  • @ShuwnYuanTee-一种常见的策略是仅安排一个警报(下一个警报),并在其触发时安排下一个警报。如果您知道警报将按顺序触发,那么绝对没有理由让系统跟踪大量警报 (2认同)
  • 谢谢你的建议。但是,这种策略也有缺点。缺少一个警报(我认为由于打盹功能而很常见)将导致未安排的后续警报。 (2认同)
  • @JemshitIskenderov - 不,WorkManager 绝对不是在特定时间运行某些内容的正确 API - WorkManager 在设备打瞌睡时不工作,这会破坏任何精确计时的外观(因为设备可以随时打瞌睡,您的应用程序无法控制那部分) (2认同)

Sad*_*hiv 6

您可以在 Workmanager 的帮助下显示通知。Workmanger可以用于调度单次发生的任务或周期性发生的任务,也可以在特定时间调度任务。

OneTimeWorkRequest request= new OneTimeWorkRequest.Builder(CustomWorkerClass.class)
.setInitialDelay(delayedTime, TimeUnit.MILLISECONDS)
.addTag("TAG")
.build();
Run Code Online (Sandbox Code Playgroud)

'delayedTime' -> 计算触发通知的时间

有关更多实施细节,请点击此处。要了解有关 Workmanager 的更多信息,请单击此处