Как обрабатывать жизненный цикл деятельности с участием розетки в Android?
-
05-10-2019 - |
Вопрос
- У меня есть активность Android, которая, в свою очередь, начинает нить.
- В потоке я открываю постоянное соединение сокета TCP.
- Когда сокет подключается к серверу динамические данные загружены.
- Поток отправляет сообщения, используя класс обработчика в действие, когда данные были получены.
Теперь, если пользователь произойдет переключаться с портрета в ландшафтный режим, активность получает вызов OnDestroy. На данный момент я закрываю розетку и остановился нить.
Когда Android переключил ландшафтный режим, он снова звонит OnCreate, и я должен сделать разъем Re-Connect. Кроме того, все данные полученные в действие должны быть загружены еще раз, потому что сервер не имеет возможности знать, что было отправлено ранее, т. Е. Не существует функции «резюме».
Таким образом, проблема в том, что есть много данных, которые все время возмущают, когда ландшафтный режим изменен.
Какие мои варианты здесь?
- Должен ли я создать услугу, которая обрабатывает трафик сокета к серверу, таким образом, я всегда получил все данные, которые сервер отправил в сервис.
- Или я должен отключить ландшафтный режим все вместе?
- Или мой лучший ставок будет переписать мой сервер, который очень большая работа :-)
Все вход приветствуется :-)
/ Хенрик
Решение
Либо помешать вашу активность от перезапуске (Перезапуск активности на вращении Android) или внедрить услугу, которую ваше заявление управляет. Способ обслуживания очень популярен с приложениями, которые я видел, и позволяет вам некоторую гибкость при разрыве соединения.