fix: 处理部分设备启动上传任务异常
This commit is contained in:
parent
0086d15094
commit
e3f245d9f4
|
|
@ -10,7 +10,7 @@ Room 数据持久化;Worker管理上传任务,初次上传+重试共5次,
|
|||
|
||||
### 使用
|
||||
|
||||
#### 1.0.13
|
||||
#### 1.0.14
|
||||
|
||||
```kotlin
|
||||
repositories {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ plugins {
|
|||
id("maven-publish")
|
||||
}
|
||||
group = "com.yuanxuan"
|
||||
version = "1.0.13"
|
||||
version = "1.0.14"
|
||||
|
||||
|
||||
val baseReleaseUrl: Provider<String> = providers.gradleProperty("baseReleaseUrl")
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import androidx.work.BackoffPolicy
|
|||
import androidx.work.Constraints
|
||||
import androidx.work.CoroutineWorker
|
||||
import androidx.work.ExistingWorkPolicy
|
||||
import androidx.work.ForegroundInfo
|
||||
import androidx.work.NetworkType
|
||||
import androidx.work.OneTimeWorkRequestBuilder
|
||||
import androidx.work.OutOfQuotaPolicy
|
||||
import androidx.work.WorkManager
|
||||
import androidx.work.WorkerParameters
|
||||
import com.squareup.moshi.Moshi
|
||||
|
|
@ -31,7 +31,7 @@ internal class UploadWorker(appContext: Context, params: WorkerParameters) :
|
|||
data = trackingPointDao.getPendingEntities().map { it.copy(uploading = true) }
|
||||
}
|
||||
try {
|
||||
if (data.isEmpty()) return Result.success()
|
||||
if (data.isEmpty()) return success(emptyList())
|
||||
trackingPointDao.update(data)
|
||||
val moshi = Moshi.Builder().build()
|
||||
val adapter = moshi.adapter(TrackingPoint::class.java)
|
||||
|
|
@ -73,8 +73,14 @@ internal class UploadWorker(appContext: Context, params: WorkerParameters) :
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun getForegroundInfo(): ForegroundInfo {
|
||||
return super.getForegroundInfo()
|
||||
}
|
||||
|
||||
private suspend fun success(ids: List<Long>): Result {
|
||||
trackingPointDao.delete(ids)
|
||||
if (ids.isNotEmpty()) {
|
||||
trackingPointDao.delete(ids)
|
||||
}
|
||||
return Result.success()
|
||||
}
|
||||
|
||||
|
|
@ -95,7 +101,6 @@ internal class UploadWorker(appContext: Context, params: WorkerParameters) :
|
|||
|
||||
val request = OneTimeWorkRequestBuilder<UploadWorker>()
|
||||
.setConstraints(constraints)
|
||||
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
|
||||
//重试策略 一共5次 线性增加间隔时长
|
||||
.setBackoffCriteria(
|
||||
backoffPolicy = BackoffPolicy.LINEAR,
|
||||
|
|
|
|||
Loading…
Reference in New Issue