Я использую WorkManager следующим образом -
class LocationWorker(
ctx: Context, params: WorkerParameters
) : CoroutineWorker(ctx, params), KoinComponent {
private val locationDataRepository: LocationDataRepository by inject()
override suspend fun doWork(): Result {
return try {
locationDataRepository.triggerLocationUpdates()
Result.success()
} catch (e: Exception) {
Result.failure()
}
}
}
Я запускаю Worker как -
val myWorker =
PeriodicWorkRequestBuilder<LocationWorker>(
15,
TimeUnit.MINUTES
).addTag(
"location"
).build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
"location",
ExistingPeriodicWorkPolicy.KEEP,
myWorker
)
Как видите, минимальный период WorkManager составляет 15 минут.Я хочу отслеживать местоположение в течение очень коротких интервалов, скажем, каждые несколько секунд, а также я хочу, чтобы местоположение отслеживалось, даже если экран телефона выключен.Является ли WorkManager правильным выбором для моих требований или вы предложите мне другой API?