MyLocationOverlay исчезает, нет на Resume - PullRequest
0 голосов
/ 10 января 2011

У меня есть mapView, к которому я добавляю MyLocationOverlay. Хорошо отображается, когда приложение запускается с нуля (проходит через OnCreate). Если я выхожу из приложения (кнопка «Назад»), а затем снова запускаю его (onResume), наложение исчезает.

Я пытался исправить это в течение 10+ часов. Все виды возни с повторным добавлением оверлея. Сброс оверлеев. Изменение местоположения карты, чтобы он был вынужден перерисовать. Попытка вручную сделать недействительной или принудительно перерисовать оверлей. НИЧЕГО не сработало.

Судя по внешнему виду кода, объект Overlay существует, и все работает нормально, но его просто нет на карте.

Кто-нибудь еще имеет эту проблему?

(Droid Incredible, 2.2)

Ответы [ 2 ]

0 голосов
/ 10 января 2011

Где-то еще в приложении у меня есть

_locationManager.requestLocationUpdates(provider, Vars.GPS_MIN_UPDATE_MILLISECS, Vars.GPS_MIN_UPDATE_METERS, _locationListener);

Комментирование этого исправляет проблему. Странно, но эта строка вызывается только один раз во время onCreate, а НЕ во время onResume.

Но, кажется, существует некоторый конфликт при прослушивании обновлений местоположения вручную (с классом, реализующим LocationListener).

Я вернусь к этому, если узнаю больше.

Внимание! - это, вероятно, та же проблема, что и этот вопрос: GPS не обновляет местоположение после закрытия и вновь открыть приложение на Android

0 голосов
/ 10 января 2011

Если я выхожу из приложения (кнопка «Назад»), а затем снова запускаю его (onResume), наложение исчезает.

Кнопка НАЗАД уничтожает активность. Когда вы запустите его снова, onCreate() будет вызван снова. Итак, вам нужно выяснить, почему иногда ваш onCreate() не может добавить оверлей.

Вот проект , который отображает наложения, которые не страдают от вашей проблемы - возможно, это может быть полезно для сравнения.

...