| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 просмотров и ни одного ответа. Признаться, я удивлен. Тут есть вообще программисты? |
| Автор: ivanovpv 11.7.2011, 07:23 |
| Здесь нет программистов - сплошь и рядом developer'ы Я организовываю подобное безобразие следующим образом: 1) Объявляю собственный объект Application (требуется его декларация в AndroidManifest.xml) 2) Далее, по сути уже полагаюсь на ось, которая мне гарантирует, что объект Application всегда один - фактически получается паттерн Singleton 3) Ну а коли так, то уж дальше дело техники как организовать Небольшое уточнение - в Android очень удобно хранить данные в объекте типа Bundle - а в него уже можно вкладывать все что угодно, то есть в классе который будет хранить данные достаточно держать ссылку на Bundle и ложить туда то что нужно (особенно если это всякая короткоживущая мелочь) |
| Автор: spyswamp 11.7.2011, 09:56 |
| ivanovpv, понятно, суть та же - singleton. Кстати, спасибо за наводку, почитаю про этот Application. Про Bundle я в курсе. Это как раз между Activity (грубо говоря) ими кидаться хорошо. |
| Автор: APXEOLOG 19.7.2011, 08:41 |
| А чем плох Singleton? Не вижу смысла городить тонны оберточного кода если есть проверенный способ. |
| Автор: spyswamp 19.7.2011, 10:53 |
| APXEOLOG, а ничем. Вот тот же Application - такой же синглтон, только к нему есть базовые функции доступа в остальных классах. |