Какой лучший способ сохранить и восстановить MapView в Android? - PullRequest
3 голосов
/ 01 февраля 2010

У меня есть MapActivity, который содержит MapView с некоторыми пользовательскими элементами управления, информацией о состоянии и ItemizedOverlay, составленный из некоторых местоположений, которые я рисую, используя подход по умолчанию (используя populate(), super.draw() и createItem()) и некоторыми линиями, которые я рисую в переопределенном методе draw().

Итак, когда действие приостановлено, я должен сохранить:

  1. Некоторая информация о состоянии
  2. ItemizedOverlay
  3. [Возможно, в будущем будет больше оверлеев.]

Я сохраняю информацию о состоянии, как обычно, помещая ее в пакет. Я думаю сделать то же самое с Overlays, реализовать Parcelable в каждом из OverlayItems и так, но я не знаю, есть ли лучший способ сохранить полное состояние MapViews.

Информация зависит от удаленных запросов, которые я не хочу повторять каждый раз, когда действие приостанавливается.

Любая рекомендация?

Ответы [ 2 ]

0 голосов
/ 22 июня 2010

В качестве общего решения можно использовать onRetainNonConfigurationInstance() и getLastNonConfigurationInstance() с полным Activity или с массивом с Objects, представляющим интерес.Затем в onCreate() можно восстановить View.

0 голосов
/ 21 июня 2010

Если вся информация, касающаяся OverlayItems, получена из удаленного запроса, наиболее простым решением будет сохранение результатов последнего запроса в файле.

При перезапуске активности вы проверяете, доступен ли вывод обналиченного запроса (и, возможно, все еще действителен для ваших нужд), и затем используете существующие методы для извлечения данных из него.

Например, если вы получаете POI из удаленного KML или JSON, вы также можете использовать существующий анализатор для извлечения данных из локального файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...