Можем ли мы настроить Android Work Manager для запуска при изменении местоположения в зависимости от расстояния? - PullRequest
0 голосов
/ 27 марта 2019

Мне нужен фоновый сервис, который постоянно работает для моего приложения.Я искал в Интернете различные способы, такие как служба переднего плана, которая постоянно показывает уведомления для версий выше Android 8, Диспетчер работ и Планировщик заданий.Я думаю, что Work Manager удовлетворяет моим требованиям с точки зрения фонового бега, но не уверен, что он может быть запущен на основании изменения расстояния до места.

https://developer.android.com/topic/libraries/architecture/workmanager

Я вижу, что у нас могут быть периодические обновления, например, каждые 15 минут, но я хотел знать, можем ли мы настроить их на основе самого изменения расстояния.

https://medium.com/@prithvibhola08/location-all-the-time-with-workmanager-8f8b58ae4bbc

Пример, если я установил setSmallestDisplacement(10m) для запроса местоположения, рабочий менеджер должен запускаться при каждом изменении расстояния 10 м и отправлять местоположение на сервер.

https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest

1 Ответ

1 голос
/ 13 июля 2019

Для моего приложения я позволю службам определения местоположения работать без расписания.Но я укажу минимальное расстояние, измененное в моем диспетчере местоположений, чтобы вызвать обновление, подобное этому.

private void onStartListening() {  
   //init location manager.
   LocationManager mLm = (LocationManager) getSystemService(LOCATION_SERVICE);

   //binding listener to manager with network provider.    
   mLm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 10, mNetworkListener);
}

Третий аргумент для моего requestLocationUpdates() - это минимальное расстояние между обновлениями местоположения в метрах.

Кроме того, второй - это минимальный интервал времени между обновлениями местоположения в миллисекундах.Если вы также хотите указать временные критерии для обновлений вашего местоположения.

...