Android; кеширование данных геокодирования? - PullRequest
1 голос
/ 06 ноября 2010

Мое приложение выполняет несколько вызовов getFromLocationName из класса android.location.Geocoder;, это в настоящее время обрабатывается в моей деятельности, которая также отображает некоторые данные, зависящие от результатов этого вызова.

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

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

Мой вопрос : Как мне лучше не запрашивать эти данные при каждом запуске моего приложения. Должен ли я что-то сделать с сервисом, который загружает их все при запуске? (может быть довольно медленным, если он должен делать запросы более 50 раз). ИЛИ я должен сделать вызов, сохранить результаты в SQL, а затем запросить только в следующий раз, если я в данный момент не удерживаю результаты?

1 Ответ

2 голосов
/ 06 ноября 2010

Если вы хотите быстро кэшировать его, я бы рекомендовал хранить самые последние результаты в базе данных SQLite. Возможно, вам даже не удастся использовать PreferenceManager для быстрого хранения, если вам не нужна база данных ни для чего другого. Просто сохраните последние координаты и дату и время, затем проверьте, истекло ли время и дата через X минут или X часов (если это то, что вы хотите сделать).

...