【问题标题】:Work Manager not scheduling notification when app is closed应用程序关闭时工作管理器未安排通知
【发布时间】:2019-11-05 18:56:58
【问题描述】:

我正在尝试构建一个医患应用程序,医生将在该应用程序中上传患者的医疗处方,并在使用 Firebase 通知成功上传处方时提醒患者。 我想要的是,我想在上传处方后立即根据处方自动安排药物提醒我已将来自 Firebase 消息传递服务的数据保存在本地 SQLite 中,并尝试根据包含患者需要服用的药物的时间安排通知。

我曾尝试使用 WorkManager,但当我尝试安排消息时它不起作用

 WorkManager wmanager;

WorkManager.getInstance(getApplicationContext()).cancelAllWorkByTag("AL");

 PeriodicWorkRequest saveRequest =
                    new PeriodicWorkRequest.Builder(UploadWorker.class, 24, TimeUnit.HOURS).setInitialDelay(60,TimeUnit.SECONDS)
                            .addTag("AL")
                            .build();
 wmanager=WorkManager.getInstance(getApplicationContext());
                    wmanager.enqueue(saveRequest);

Upload Worker 类中的代码

  dmed=handler.getMedicine("AL");
         shownotification( dmed);

//handler.getMedicine 从本地sqlite获取数据

【问题讨论】:

    标签: android android-workmanager


    【解决方案1】:

    不要取消工作然后重新安排它,而是使用unique worker

    PeriodicWorkRequest saveRequest = new PeriodicWorkRequest
                                .Builder(UploadWorker.class, 24, TimeUnit.HOURS).setInitialDelay(60,TimeUnit.SECONDS)
                                .addTag("AL")
                                .build();
    WorkManager wmanager=WorkManager.getInstance(getApplicationContext());
    wmanager.enqueueUniquePeriodicWork("UniqueName", ExistingPeriodicWorkPolicy.KEEP, saveRequest);
    

    但是,请记住,WorkManager 不保证延迟的准确时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 2018-05-05
      • 1970-01-01
      • 2022-01-27
      相关资源
      最近更新 更多