0

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

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

        WorkManager.getInstance().enqueue(myWork);

我只想在我之前的状态为空或未运行的情况下将工作加入队列。我不想在队列中弄乱几件作品。每次我的服务被销毁时,我上面的代码都会创建工作队列,所以它只会排队。是的,我确实阅读了这方面的教程,但所有这些都是针对 Kotlin 或具有 lambda 表达式的。PS- 仅限 Java 方法,没有 Kotlin 或 lambda 表达式。

4

1 回答 1

0

我的建议是完全摆脱 Service 并使用 WorkManager 定期请求轮询更改。此外,如果您使用的是 Firebase 数据库,那么您应该能够在不需要服务的情况下监听数据库更改。我为 WorkManager 遵循了这个示例。这篇文章很好地描述了 WorkManager 背后的历史,并展示了一个很好的例子。

于 2018-07-25T00:26:58.330 回答