diff --git a/Readme.md b/Readme.md index 5b59dd1..1380d0d 100644 --- a/Readme.md +++ b/Readme.md @@ -10,7 +10,7 @@ Room 数据持久化;Worker管理上传任务,初次上传+重试共5次, ### 使用 -#### 1.0.13 +#### 1.0.14 ```kotlin repositories { diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 5d36e3f..cb3952c 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -7,7 +7,7 @@ plugins { id("maven-publish") } group = "com.yuanxuan" -version = "1.0.13" +version = "1.0.14" val baseReleaseUrl: Provider = providers.gradleProperty("baseReleaseUrl") diff --git a/library/src/main/java/com/yuanxuan/tracking_point/library/UploadWorker.kt b/library/src/main/java/com/yuanxuan/tracking_point/library/UploadWorker.kt index d8b23e7..8a0a9b2 100644 --- a/library/src/main/java/com/yuanxuan/tracking_point/library/UploadWorker.kt +++ b/library/src/main/java/com/yuanxuan/tracking_point/library/UploadWorker.kt @@ -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): 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() .setConstraints(constraints) - .setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST) //重试策略 一共5次 线性增加间隔时长 .setBackoffCriteria( backoffPolicy = BackoffPolicy.LINEAR,