Держите сокет связи между действиями на Android - PullRequest
7 голосов
/ 16 октября 2011

Я разрабатываю приложение на Android 3.1, и у меня есть Activity A, у которой есть подкласс, выходящий из aSyncTask, этот подкласс создает сокет и подключается к серверу. Все мое общение хорошее. Я получал сообщения и отправлял команды на сервер, но когда я получил определенную команду, мне нужно было начать второе действие (действие B), но я не могу потерять свой сокет и установить связь с сервером, плюс я все еще могу получать и отправлять команды из действия B на сервер. Как мне это сделать?? Любая помощь, пожалуйста!

Ответы [ 2 ]

14 голосов
/ 18 октября 2011

Мой подход заключается в реализации службы и перемещении / централизации всего кода вашего сетевого подключения в службу, для всех действий, которые хотят использовать сокетное соединение, связывайте вашу сетевую службу в onCreate (), а затем, после завершения, отсоедините ее в onDestory ()

10 голосов
/ 25 марта 2014

По словам Дайан Хэкборн (инженер Android), рекомендуемая практика передачи сетевых подключений между действиями заключается в создании единого объекта, к которому любая деятельность может получить доступ и управлять соединением оттуда. См. здесь и проверьте первое сообщение от Dianne.

На странице Службы на сайте разработчиков Android (примечание в разделе «Основы») также упоминается, что вы должны использовать службу только в том случае, если вам нужно запустить код, который должен продолжить выполнение, пока ваше приложение на заднем плане.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...