android - Android Worker doWork() 遇到 for 循环
问题描述
我从服务器端看到 Android 调用多个 /test API 请求 - 看起来像永无止境的 for 循环。此 API 仅在 TestWorker 类中定义:
class TestWorker(
context: Context,
workerParams: WorkerParameters
) : Worker(context, workerParams) {
override fun doWork(): Result {
callApiRequest()
return Result.success()
}
private fun callApiRequest() {
XUseCase.execute()
.backgroundToMainThread()
.subscribe(
{ ->
..
},
{
..
}
)
}
companion object {
const val REPEAT_INTERVAL_IN_HOURS = 3L
}
}
private fun initTestWorker() {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
val workerRequest = PeriodicWorkRequestBuilder<TestWorker>(TestWorker.REPEAT_INTERVAL_IN_HOURS, TimeUnit.HOURS)
.setConstraints(constraints)
.build()
WorkManager
.getInstance(this)
.enqueueUniquePeriodicWork("", ExistingPeriodicWorkPolicy.KEEP, workerRequest)
}
initTestWorker() 在 MyApp 的 onCreate() 方法中被调用。我不确定如何,但也许有人经历过类似的行为,从前端我无法重现这个问题。任何使用 Worker 的循环经验?
解决方案
推荐阅读
- oracle - 如何在使用 oracle 的 XPATH 查询中增加侧 for 循环中的计数器变量
- c# - 为什么接口 IEnumerable 返回 IEnumerator GetEnumemrator()?为什么不直接实现接口 IEnumerator?
- sql - 预定上传
- blazor - EditForm 中的 Blazor 选择和输入验证
- python - 问题的时间复杂度和优化方式
- angular - 如何从 Angular 8 的资产文件夹中设置背景图像?
- javascript - ReactJS:React-Month-Picker 错误:函数组件不能有引用。你的意思是使用 React.forwardRef() 吗?
- javascript - Jest 中的 module.export 单元测试问题
- arduino - 电机护罩未按预期移动
- reactjs - React useState 空数组类型