Я реализовал foreground service
для предоставления мне текущего местоположения каждые 10 секунд. С собранными данными я хочу отобразить маршрут на карте.
Однако при работе с отслеживанием местоположения и услугами экран телефона не всегда будет включен из-за экономии заряда аккумулятора. Таким образом, действие вызовет методы onPause()
, onStop()
, и самая ранняя точка для обновления MapView
будет после onResume()
. До этого момента в каждой трансляции на активность я отправляю список всех LatLng
объектов, очищаю маршрут до этого момента и снова отображаю маршрут, используя Polyline
. Это делает работу, но почему-то я нахожу это очень неэффективным, говоря о системных ресурсах.
Альтернатива будет при каждой трансляции сохранять полученные объекты LatLng в списке, подобном List<LatLng> points=new ArrayList<LatLng>();
, инициализированному в упражнении, и для отображения данных вычислять разницу между полученными координатами и теми, кто уже сохранен в Список действий, и отображать только те, которые Polyline
.
Что вы думаете? Есть ли лучший подход, чем эти два?