我一直在尝试新的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状态,但是我想知道这是否可以预期,并且这不会成为问题。我认为,如果用户卸载您的应用程序,那么这些后台任务也应删除。我一直在努力寻找与此相关的信息,但到目前为止还没有找到。 有没有人看过这本书,或者有人可以给我指出文档或类似内容?
谢谢您的帮助
答案 0 :(得分:1)
当然不是。卸载应用程序后,将没有WorkManager的实例。
即使您的应用程序进程已被杀死,WorkManager API也将起作用,但是在卸载应用程序后,WorkManager API将无法工作。 WorkManager API实施是您的应用程序的一部分,但不是Android OS的一部分。
请再次检查您的卸载。