Android периодические обновления местоположения с помощью workmanager - PullRequest
1 голос
/ 20 сентября 2019

Я использую 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?

...