2010-05-30 1 views
3
  • У меня есть активность Android, которая, в свою очередь, начинается с потока.
  • В потоке я открываю постоянное соединение сокетов TCP.
  • Когда сокет подключается к серверу, загружаются динамические данные.
  • Нить отправляет сообщения, используя класс Handler, в действие, когда данные были получены.

Теперь, если пользователь переключается с портретного на альбомный режим, активность получает вызов onDestroy. В этот момент я закрываю гнездо и останавливаю нить.Как справиться с жизненным циклом активности с использованием сокетов в Android?

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

Таким образом, проблема заключается в том, что существует много данных, которые постоянно возникают при изменении ландшафтного режима.

Какие у меня варианты?

  • Должен ли я создать службу, которая обрабатывает трафик сокета в направлении сервера, таким образом, я всегда получаю все данные, которые сервер отправил в службу.
  • Или мне нужно отключить ландшафтный режим вместе?
  • Или моя лучшая ставка будет переписать мой сервер, который является очень большой работой :-)

Все ввод приветствуется :-)

/Хенрик

+0

В вашем случае лучшим вариантом является указание Android не уничтожать вашу активность при каждом повороте экрана. Описанное здесь: http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android –

ответ

6

Либо предотвратить вашу деятельность от (Activity restart on rotation Android) или реализовать службу, которой управляет ваше приложение. Метод службы очень популярен в приложениях, которые я видел, и позволяет вам проявлять некоторую гибкость при разрыве соединения.

+0

Определенно создайте 'Сервис'; вы будете иметь те же проблемы «жизненного цикла» не только, если экран вращается, но если пользователь нажимает «Домой», приходит вызов, экран переходит в режим ожидания и т. д. ... –

+0

Спасибо за ввод! Действительно ценю это. – Henrik

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

  • Нет связанных вопросов^_^