【问题标题】:Get arch WorkManager running status获取arch WorkManager运行状态
【发布时间】:2018-07-23 18:23:48
【问题描述】:

我最近开始使用 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 表达式。

【问题讨论】:

    标签: java android android-jobscheduler android-workmanager


    【解决方案1】:

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

    【讨论】:

    • 如何监听数据库变化?如果应用程序闲置或手机进入深度睡眠,则对数据库更改没有反应
    • 据我了解,数据同步由 firebase 数据库库处理。你不需要明确地这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2014-05-04
    • 1970-01-01
    • 2020-06-03
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多