Что надлежащий путь состоит в том, чтобы обмениваться данными или объектами между различными Операциями Android?
Экран приветствия <-> Основной Экран <-> стандартные программы Запуска <-> Обработка данных <-> Настройки
Действительно ли нормальный/рекомендует иметь больше чем одно действие в приложении для Android? по-моему, так или иначе странно иметь эту модель обмена данными в приложении
На странице разработчика Android есть обзор:
http://developer.android.com/guide/appendix/faq/framework.html#3
Если резюмировать, то это зависит от того, какой тип данных вы собираетесь передавать. Но вообще говоря, если это возможно, я бы выбрал Intents, потому что они быстрые и созданы для этого.
Вот пример, который объясняет, как передавать данные между действиями с помощью Intents.
Это нормально / рекомендуется иметь больше чем одно действие в приложении для Android?
Нормально? да. Рекомендуемые? Это зависит от приложения.
на мой взгляд, как-то странно иметь эту модель обмена данными внутри приложения
Что вы делаете с веб-приложениями? Что ж, вы держите свою модель в центральном месте (сервере) и передаете небольшие биты контекстных данных (параметры URL) в ссылках между основными модулями пользовательского интерфейса (страницами).
Что вы делаете с настольными приложениями? Что ж, вы держите свою модель в центральном месте (базе данных) и передаете небольшие биты контекстных данных (например, параметры конструктора) в связях между основными модулями пользовательского интерфейса (окнами).
Что вы делаете с приложениями для Android? Итак, ваша модель находится в центре внимания (база данных, ContentProvider
и т. Д.), И вы передаете небольшие фрагменты контекстных данных ( Intent
extras) в связях между основными модулями пользовательского интерфейса ( виды деятельности).
Ответ: это зависит.
В зависимости от архитектуры вашего приложения вы можете захотеть:
Хранить ваши данные в настраиваемом ContentProvider и передавать ему ссылки URI --- если ваше приложение основано на базе данных, это способ to go, так как это позволяет другим приложениям напрямую обращаться к вашим элементам данных;
Пусть ваши действия обмениваются данными, отправляя друг другу намерения, с данными, упакованными внутри настраиваемых полей данных намерений --- если вы используете только очень маленькие элементы данных, таких как имена или URI, это простой способ управления вещами, но он не работает для более крупных элементов;
Пусть все ваши действия выполняются внутри одного процесса и хранят ваши данные в общих объектах Java --- обычно не рекомендуется, но подходит для специализированных приложений, таких как игры (но помните о проблемах, связанных с жизненным циклом приложений!).
Мои приложения, как правило, используют комбинацию первых двух: данные в основном находятся в ContentProvider, но я также использую намерения для отправки внеполосной информации между ContentProvider и действиями, когда такие данные нелегко уместить в ContentProvider API.