获取arch WorkManager的运行状态

时间:2018-07-23 18:23:48

标签: java android android-jobscheduler android-workmanager

我最近开始使用arch WorkManager进行后台处理。由于它是新引入的库,因此几乎没有任何教程。我被困在这里。我有一项服务,可检查Firebase中的任何数据更改。如果服务被销毁,WorkManager就会生效。 在我的服务的onDestroy方法中,我有-

        PeriodicWorkRequest.Builder photoWorkBuilder =
                new PeriodicWorkRequest.Builder(MyWorker.class, 10000,
                        TimeUnit.MILLISECONDS);
        PeriodicWorkRequest myWork = photoWorkBuilder.build();

        WorkManager.getInstance().enqueue(myWork);

仅当我以前的状态为null或未运行时,我才想加入工作。我不想在队列中弄乱几本作品。我上面的代码每次在我的服务被销毁时都会创建工作队列,因此它只会不断排队。是的,我确实读过有关此的教程,但所有教程都是针对Kotlin或lambda表达的。 仅限PS- Java方法,没有Kotlin或lambda表达式。

1 个答案:

答案 0 :(得分:0)

我的建议是完全摆脱Service并定期使用WorkManager轮询更改。另外,如果您使用的是Firebase数据库,那么您应该能够侦听数据库更改而无需进行服务。我跟随this example使用WorkManager。本文很好地描述了WorkManager的历史并显示了一个很好的示例。