Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > Общие данные для нескольких Activity


Автор: spyswamp 8.7.2011, 13:25
День добрый.

Задача творческая. Есть, скажем, некоторый список данных. Пусть это будем map. Есть программа с несколькими Activity, которым в тот или иной момент времени требуется доступ к этому map'у: получение данных, изменение данных. Режим работы синхронный, т.е. особо можно не париться насчет многопоточности.

Так вот. Как вы организовываете подобные вещи? Для начала я использовал обычный singleton, который предоставлял интерфейс для работы с этим самым map'ом. А все Activity хватали instance и работали с объектом когда им требуется (в частности, когда я тыкал по кнопкам в программе). Но мне кажется, это немного моветон.
Была еще идея хранить данные в главной Activity, но это немного противоречит понятиям разделения данных и проекции для отображения. Плюс, в этом случае, кидаться данными между Activity тоже выглядит подозрительным.

Поэтому на таком простом примере хочу поучиться. Ибо на практике я пока видел только адовые решения Java-"программистов", которые по криворукости сравнимы разве что с безрукими. А в особенности java-приложений, само-собой, надо вникать.

Спасибо за внимание.

Автор: spyswamp 11.7.2011, 00:24
60 просмотров и ни одного ответа. Признаться, я удивлен. Тут есть вообще программисты? smile

Автор: ivanovpv 11.7.2011, 07:23
Здесь нет программистов - сплошь и рядом developer'ы  smile 

Я организовываю подобное безобразие следующим образом:
1) Объявляю собственный объект Application (требуется его декларация в AndroidManifest.xml)
2) Далее, по сути уже полагаюсь на ось, которая мне гарантирует, что объект Application всегда один - фактически получается паттерн Singleton
3) Ну а коли так, то уж дальше дело техники как организовать

Небольшое уточнение - в Android очень удобно хранить данные в объекте типа Bundle - а в него уже можно вкладывать все что угодно, то есть в классе который будет хранить данные достаточно держать ссылку на Bundle и ложить туда то что нужно (особенно если это всякая короткоживущая мелочь)

Автор: spyswamp 11.7.2011, 09:56
ivanovpv, понятно, суть та же - singleton. Кстати, спасибо за наводку, почитаю про этот Application.  smile 

Про Bundle я в курсе. Это как раз между Activity (грубо говоря) ими кидаться хорошо.

Автор: APXEOLOG 19.7.2011, 08:41
А чем плох Singleton? Не вижу смысла городить тонны оберточного кода если есть проверенный способ.

Автор: spyswamp 19.7.2011, 10:53
APXEOLOG, а ничем. Вот тот же Application - такой же синглтон, только к нему есть базовые функции доступа в остальных классах.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)