I a*_*ent 3 android workmanagers android-workmanager
根据我从文档https://developer.android.com/topic/libraries/architecture/workmanager中阅读的内容,
它说:
即使您的应用被强制退出或设备重新启动,该任务仍然可以保证运行。
那么这意味着,无论如何,在后台执行的任务都会100%执行到完成为止。
例如:
应用程序具有执行工作管理器实施的按钮,该按钮可将数据上传到在线数据库,但需要Internet连接才能上传数据。因此,我的应用程序当前处于离线模式,然后单击按钮。
我的不确定性:
工作管理器是否会在后台运行该过程,并在没有Internet连接的情况下继续重试该过程?并且仅完成并停止该过程,直到建立Internet连接并完成数据上传?
工作管理器是否会在后台运行该过程,并在没有Internet连接的情况下继续重试该过程?并且仅完成并停止该过程,直到建立Internet连接并完成数据上传?
它不会隐式尝试连续执行工作并仅在成功后才停止。这取决于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);
Run Code Online (Sandbox Code Playgroud)
WorkManager 将确保只有在连接互联网的情况下才能执行您的工作。
| 归档时间: |
|
| 查看次数: |
3371 次 |
| 最近记录: |