Fix ForegroundServiceStartNotAllowedException on Android 12+
- Add setExpedited() to WorkManager requests missing it - Fixes crash when starting foreground services from background - Updated DownloadFactory, LocalStorageCleanupWorker, SuggestionsWorker, and TrackWorker schedulers - Ensures compliance with Android 12+ foreground service restrictions
This commit is contained in:
@@ -526,6 +526,7 @@ class DownloadWorker @AssistedInject constructor(
|
||||
.setConstraints(constraints)
|
||||
.addTag(TAG)
|
||||
.setId(work.id)
|
||||
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
|
||||
.build()
|
||||
workManager.awaitUpdateWork(request)
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ class LocalStorageCleanupWorker @AssistedInject constructor(
|
||||
.setConstraints(constraints)
|
||||
.addTag(TAG)
|
||||
.setBackoffCriteria(BackoffPolicy.LINEAR, 10, TimeUnit.MINUTES)
|
||||
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
|
||||
.build()
|
||||
WorkManager.getInstance(context).enqueueUniqueWork(TAG, ExistingWorkPolicy.KEEP, request).await()
|
||||
}
|
||||
|
||||
@@ -415,6 +415,7 @@ class SuggestionsWorker @AssistedInject constructor(
|
||||
.setConstraints(createConstraints())
|
||||
.addTag(TAG)
|
||||
.setBackoffCriteria(BackoffPolicy.LINEAR, 1, TimeUnit.HOURS)
|
||||
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
|
||||
.build()
|
||||
workManager
|
||||
.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.UPDATE, request)
|
||||
|
||||
@@ -289,6 +289,7 @@ class TrackWorker @AssistedInject constructor(
|
||||
.setConstraints(constraints)
|
||||
.addTag(TAG)
|
||||
.setBackoffCriteria(BackoffPolicy.LINEAR, 30, TimeUnit.MINUTES)
|
||||
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
|
||||
.build()
|
||||
workManager
|
||||
.enqueueUniquePeriodicWork(TAG, ExistingPeriodicWorkPolicy.UPDATE, request)
|
||||
|
||||
Reference in New Issue
Block a user