From e3f245d9f45be5eaf90c8707c9e66fb74edbd38d Mon Sep 17 00:00:00 2001 From: yangxisong Date: Tue, 16 Dec 2025 14:39:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=90=AF=E5=8A=A8=E4=B8=8A=E4=BC=A0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 2 +- library/build.gradle.kts | 2 +- .../yuanxuan/tracking_point/library/UploadWorker.kt | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) 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,