我试试这个剧本:
var myConstraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
val uploadInventorySyncWork = OneTimeWorkRequest.Builder(UploadInventorySyncWorker::class.java)
.setConstraints(myConstraints)
.addTag(UploadInventoryModel.ONE_TIME_TAG)
.build()
WorkManager.getInstance().enqueue(uploadInventorySyncWork)
WorkManager.getInstance().getWorkInfosByTagLiveData(UploadInventoryModel.ONE_TIME_TAG)
.observeForever { workStatus ->
if (workStatus != null) {
attempt+1
for (works in workStatus) {
Log.d("dodol34 no", attempt.toString() + " | " + works.state.toString())
if (works.state == WorkInfo.State.SUCCEEDED) {
}
}
}
}
它在android oreo中运行良好。但在android nougat中它总是处于排队状态。以下是logcat结果(android nougat):
12-02 00:20:13.890 23118-23118/com.mockie.daikokuten D/dodol34Â no: 1 | ENQUEUED
1 | ENQUEUED
1 | ENQUEUED
1 | ENQUEUED
1 | ENQUEUED
1 | ENQUEUED
1 | ENQUEUED
1 | ENQUEUED
一点错误都没有,有时候有用,有时候不行。