1

我一直在尝试新的 Android WorkManager API,它似乎工作正常。但是我在测试我的应用程序时注意到了一些事情:在创建一个新的周期性工作实例之前,我检查状态以避免创建多个:

WorkManager.getInstance().getStatusesByTag(myTag)
            .observe(lifecycleOwner, Observer { status ->
                // creates a new worker if status returns nothing
            })

应用程序第一次启动时,状态没有返回任何内容并创建了一个新的,但后来我需要卸载我的应用程序,当它再次启动时,已经从日志中创建了一个工作人员:

WorkStatus{mId='UUID', mState=ENQUEUED, mOutputData=androidx.work.Data@0, mTags=[tag, tagName]}]

我知道 API 仍处于 alpha 阶段,但我想知道这是否是预期的以及这是否不会成为问题。我认为如果用户卸载您的应用程序,这些后台任务也应该被删除。我一直在尝试找到一些与此相关的信息,但到目前为止我还找不到。有没有人看到这个或者任何人都可以给我一个文档或类似的东西?

谢谢您的帮助

4

1 回答 1

1

当然不是。卸载应用程序后,将没有 WorkManager 实例。

即使您的应用程序进程已被终止,但在卸载应用程序后,WorkManager API 仍可工作。WorkManager API 实现是您的应用程序的一部分,但不是 Android 操作系统的一部分。

请再次检查您的卸载。

于 2018-07-13T13:23:41.720 回答