Активность для отображения основного вида карты локаций
Да
Второй вид деятельности для отображения списка? Это кажется странным, так как я
создается впечатление, что каждое действие должно быть целым экраном
приложение. Я хотел бы сохранить другие элементы пользовательского интерфейса. (например, кнопка для
переключение видов, кнопка настроек и т. д.) Возможно ли это?
Не обязательно так. Взгляните на Фрагменты API . Это позволяет вам переключать только части вашего пользовательского интерфейса. Он был представлен в Android 3.0, но существует официальный бэкпорт, так что вы также можете использовать его в предыдущих версиях Android.
С его помощью вы можете поместить свои кнопки в упражнение, карту в одном фрагменте и список в другом, а затем просто переключать карту со списком, сохраняя кнопки.
Служба (или IntentService?) Для получения местоположений из Интернета.
Как это должно сообщить Activity и ContentProvider, когда новый
местоположения были найдены с помощью трансляций или должны быть привязаны к
это?
Я бы настоятельно советовался против этого. Вы должны использовать сервис, если у вас есть длительные загрузки в фоновом режиме, такие как загрузка файла или что-то. Краткосрочные запросы JSON могут и должны обрабатываться в процессе пользовательского интерфейса. Для этого используйте AsyncTask или Executor . Google советовал помещать почти все ваши запросы в службу, но, поверьте мне, это бык.
ContentProvider, для кэширования и сохранения моих местоположений. Возможно,
контент-провайдер должен транслировать действия, когда новые данные
доступно для отображения?
Не требуется. Вам действительно нужен ContentProvider, если вы планируете сделать ваш контент доступным для других Приложений или Системы. Для HTTP-кэширования вы можете напрямую обращаться к базе данных / файловой системе или, что еще лучше, использовать Apache HTTP Client Cache . Хорошо работает, если вы используете уже встроенный HTTP-клиент Apache, что вам и нужно.