Во-первых, я знаю, что LocationManager не нужно вызывать в AsyncTask, поскольку он уже не блокирует пользовательский интерфейс:)
У меня есть действие, которое 1. Получает текущее местоположение пользователя 2. Вызывает веб-сервис дляполучить список определенных POI вокруг этого местоположения.
Пользователь может выбрать просмотр результатов в виде карты или списка с помощью TabActivity.Принимая это во внимание, AsyncTask для определения местоположения пользователей и вызова веб-службы управляется представлением TabActivity, а не любым из закрепленных представлений.
Поэтому я хочу, чтобы TabActivity запускала AsyncTask, которая сначала получает местоположение пользователей,затем вызывает веб-сервис.Диалоговое окно прогресса не позволяет переключать представления с использованием вкладок во время этого процесса.
Практически все работает, кроме получения местоположения пользователей из AsyncTask.Код веб-службы написан, код сопоставления и наложения написан, диалог хода выполнения задачи справляется с изменениями ориентации.
Основное внимание на местоположении уделяется скорости, а не точности.Если пользователь выберет просмотр результатов просмотра карты, я предоставлю кнопку «Мое местоположение», которая позволит получить более точное местоположение.Я просто хочу сначала получить приблизительное местоположение и быстро вернуть результаты поиска.
Возможно, я поступаю неправильно.Может быть, мне следует отобразить вид карты, позволить активности карты найти текущее местоположение, а затем вызвать только асинхронный веб-сервис - но что, если пользователь коснется вкладки представления списка на этапе определения местоположения?Я также собирался позволить пользователю указать свой вид по умолчанию - некоторые люди могут предпочесть список карте.В этом случае у меня будет список, который должен был бы найти местоположение.
Спасибо за любой совет, Мартин.