2011-01-20 2 views
1

Мое приложение содержит 2 части: сетевую часть и графический интерфейс. Он работает как браузер - пользователь запрашивает некоторую информацию с сервера, сервер отправляет обратно некоторые данные, представляющие какое-то представление, затем отображает GUI.Android, сохраняющий вид

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

Это довольно просто, не нужно воссоздавать всю иерархию представлений и сохранять все состояния.

Но есть проблема - я могу создавать Представления в контексте службы, я могу держать их между запуском активности, может отвязывать и пересказывать представления, когда действие уничтожается и создается? но для некоторых представлений требуется контекст действия (например, Spinner, который создает всплывающее диалоговое окно).

Итак, есть ли способ изменить контекст представления после создания?

Я очень новичок в программировании в андроидах, поэтому может быть лучший способ сделать это (опять же, задача - сохранить иерархию взглядов и все состояния, когда деятельность будет уничтожена и воссоздана, когда происходит поворот экрана, например).

ответ

1

Я верю, что вы ошиблись с «Я реализовал сетевую часть как услугу, которая строит и сохраняет все виды самостоятельно.».

Это только Activity, предназначенный для управления иерархией Views. Таким образом, Activity должен задать Service (или как-то уведомитесь Service) для отображения данных, а затем просто обновите их виды. Да, в некоторых случаях это требует государственного управления, но польза, которую вы получаете - это просто работает без каких-либо хаков. Другими словами - не пытайтесь обманывать ОС, а старайтесь соответствовать лучшим практикам для Android.

+0

Таким образом, нет возможности повторно использовать представления, все они должны быть воссозданы, когда начинается действие? – note173

+0

Возможно, есть какой-то хакерский способ (кто знает?), Но в моих проектах и ​​в остальных из учебных пособий или в проектах с открытым исходным кодом представления всегда являются полями класса «Активность» (подкласс). Поэтому, если создается новый экземпляр 'Activity', тогда все его представления также создаются в этот момент. –

Смежные вопросы