gpt4 book ai didi

Android Work Manager - Work Manager 会 100% 确保后台执行完成吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:06 28 4
gpt4 key购买 nike

根据我从文档中阅读的内容 https://developer.android.com/topic/libraries/architecture/workmanager ,

它说:

The task is still guaranteed to run, even if your app is force-quit or the device is rebooted.

也就是说,不管怎样,处于后台的执行都会100%执行到完成为止?

举个例子:

应用程序具有执行工作管理器实现的按钮,可将数据上传到在线数据库,但它需要互联网连接才能上传数据。因此,我的应用目前处于离线模式,我点击了按钮。

我的不确定性:

Work Manager 是否会在后台运行进程,并且即使在没有 Internet 连接的情况下也继续重试进程?并且只完成并停止该过程,直到有 Internet 连接并完成数据上传?

最佳答案

Will the Work Manager run the process at background, and keep retrying the process even when there is no Internet Connection? and only complete and stop the process until there is an Internet Connection and complete the data upload?

它不会隐式地尝试连续执行工作,只有在成功时才停止。这将取决于 doWork() 或您的 Worker 返回的结果。如果返回 RETRY,则将使用 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, long, TimeUnit) 中指定的退避重试工作。

但是,如果您需要在有互​​联网连接时执行某些操作,那么您可以指定适当的约束。对于网络连接,您可以按如下方式设置约束:

Constraints myConstraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();

OneTimeWorkRequest mywork=
new OneTimeWorkRequest.Builder(MyWorker.class)
.setConstraints(myConstraints)
.build();
WorkManager.getInstance().enqueue(mywork);

WorkManager 将确保您的工作仅在有互联网连接时执行。

关于Android Work Manager - Work Manager 会 100% 确保后台执行完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51586710/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com