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