Как передать данные из фонового потока в текущее отображаемое действие? - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть два действия: A и B. В задании A реализован LocationListener, который периодически выводит на экран необработанные GPS-координаты. Деятельность B - это просто MapActivity с MapView. Я хочу, чтобы можно было периодически передавать сгенерированные координаты от A до B, даже с A, приостановленным на заднем плане и B на переднем плане. Оказывается, что LocationListener действительно продолжает получать координаты, когда действие A приостановлено. С B в фокусе, то как мне передать эти значения из A? Подходит ли startActivity (намерение) для действия, которое уже запущено и находится на переднем плане?

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Если вам нужно постоянно запрашивать обновления местоположения, подумайте о создании сервиса «Липкий» (но не как у androidika).Посмотрите пример Remote Messenger Service .Это позволит активности «слышать» обновления местоположения от службы.

В моем приложении я создал базовый класс, который «слышал» обновления местоположения и в случае потери подключения.Затем действия пользовательского интерфейса унаследованы от этого базового класса.Таким образом, я мог бы получать обновления для двух различных действий, но минимизировать дублирующийся код.

0 голосов
/ 06 сентября 2011

Я бы рекомендовал использовать сервис, который работает в фоновом режиме.Или вместо того, чтобы одно действие решало, когда обновлять местоположение, напишите IntentService, который вы запускаете из любого из двух действий, когда вам это нужно.Взгляните на PlacesUpdateService Это больше, чем просто поиск координат GPS, но это даст вам идею.

...