关闭应用后,Work Manager不会安排通知

时间:2019-11-05 04:24:50

标签: android android-workmanager

我正在尝试构建一个医患应用程序,医生将在其中上传患者的医疗处方,并使用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获取数据

1 个答案:

答案 0 :(得分:0)

使用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不能保证延迟的确切时间。