Как обмениваться данными (объекты) между различными Операциями Android?

Что надлежащий путь состоит в том, чтобы обмениваться данными или объектами между различными Операциями Android?

Экран приветствия <-> Основной Экран <-> стандартные программы Запуска <-> Обработка данных <-> Настройки

Действительно ли нормальный/рекомендует иметь больше чем одно действие в приложении для Android? по-моему, так или иначе странно иметь эту модель обмена данными в приложении

6
задан Ante 29 July 2010 в 23:20
поделиться

3 ответа

На странице разработчика Android есть обзор:

http://developer.android.com/guide/appendix/faq/framework.html#3

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

Вот пример, который объясняет, как передавать данные между действиями с помощью Intents.

6
ответ дан 8 December 2019 в 12:17
поделиться

Это нормально / рекомендуется иметь больше чем одно действие в приложении для Android?

Нормально? да. Рекомендуемые? Это зависит от приложения.

на мой взгляд, как-то странно иметь эту модель обмена данными внутри приложения

Что вы делаете с веб-приложениями? Что ж, вы держите свою модель в центральном месте (сервере) и передаете небольшие биты контекстных данных (параметры URL) в ссылках между основными модулями пользовательского интерфейса (страницами).

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

Что вы делаете с приложениями для Android? Итак, ваша модель находится в центре внимания (база данных, ContentProvider и т. Д.), И вы передаете небольшие фрагменты контекстных данных ( Intent extras) в связях между основными модулями пользовательского интерфейса ( виды деятельности).

9
ответ дан 8 December 2019 в 12:17
поделиться

Ответ: это зависит.

В зависимости от архитектуры вашего приложения вы можете захотеть:

  • Хранить ваши данные в настраиваемом ContentProvider и передавать ему ссылки URI --- если ваше приложение основано на базе данных, это способ to go, так как это позволяет другим приложениям напрямую обращаться к вашим элементам данных;

  • Пусть ваши действия обмениваются данными, отправляя друг другу намерения, с данными, упакованными внутри настраиваемых полей данных намерений --- если вы используете только очень маленькие элементы данных, таких как имена или URI, это простой способ управления вещами, но он не работает для более крупных элементов;

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

Мои приложения, как правило, используют комбинацию первых двух: данные в основном находятся в ContentProvider, но я также использую намерения для отправки внеполосной информации между ContentProvider и действиями, когда такие данные нелегко уместить в ContentProvider API.

4
ответ дан 8 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: