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

StackOverflow https://stackoverflow.com/questions/2939896

Вопрос

  • У меня есть активность Android, которая, в свою очередь, начинает нить.
  • В потоке я открываю постоянное соединение сокета TCP.
  • Когда сокет подключается к серверу динамические данные загружены.
  • Поток отправляет сообщения, используя класс обработчика в действие, когда данные были получены.

Теперь, если пользователь произойдет переключаться с портрета в ландшафтный режим, активность получает вызов OnDestroy. На данный момент я закрываю розетку и остановился нить.

Когда Android переключил ландшафтный режим, он снова звонит OnCreate, и я должен сделать разъем Re-Connect. Кроме того, все данные полученные в действие должны быть загружены еще раз, потому что сервер не имеет возможности знать, что было отправлено ранее, т. Е. Не существует функции «резюме».

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

Какие мои варианты здесь?

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

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

/ Хенрик

Это было полезно?

Решение

Либо помешать вашу активность от перезапуске (Перезапуск активности на вращении Android) или внедрить услугу, которую ваше заявление управляет. Способ обслуживания очень популярен с приложениями, которые я видел, и позволяет вам некоторую гибкость при разрыве соединения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top