【发布时间】:2021-11-24 09:59:30
【问题描述】:
我写了这段代码并给出了两个约束:
- 网络已连接
- 充电器已连接
但是当我断开充电器并将代码入队并再次插入充电器时,它不会运行并保持入队状态,而网络约束工作得很好。
活动类
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val viewModel = ViewModelProvider(this).get(MainViewModel::class.java)
binding.button.setOnClickListener {
setWorkManager()
}
}
private fun setWorkManager() {
val workManager = WorkManager.getInstance(applicationContext)
val constrains = Constraints.Builder()
.setRequiresCharging(true)
.build()
val uploadRequest = OneTimeWorkRequestBuilder<MyWorker>()
.setConstraints(constrains)
.build()
workManager.enqueue(uploadRequest)
}
}
工人阶级
class MyWorker(
context: Context,
param: WorkerParameters) : Worker(context, param) {
override fun doWork(): Result {
return try {
for (i in 0..600) {
Log.i("check", "in $i")
}
Result.success()
} catch (e: Exception) {
Result.failure()
}
}
}
【问题讨论】:
标签: android kotlin android-broadcast android-workmanager