Вот как я это вижу:
когда вы возвращаетесь в сервис для второй операции чтения данных; будут
розетка там? (или сборщик мусора), потому что после чтения данных
операция запущена, новое соединение не принято.
Если объект является статическим и имеет сокет в качестве переменной-члена, он, скорее всего, будет там, в вашем единственном шаблоне должны быть средства защиты, чтобы оградить от этой проблемы (if single==null){...}
, вы также можете попробовать управлять им, переопределив Application
класс и добавление фабричного метода там. Вы должны убедиться, что розетка открыта и закрыта правильно, а не просто повисла, так как это может создать проблемы
РЕДАКТИРОВАТЬ:
Будет ли фактический сокет еще открыт, зависит от времени ожидания сокета
умрет ли первый сервис после вызова действия с действиями пользователя?
Службам нужно сказать, чтобы они прекратились, и поэтому они не умрут
что произойдет, если я позвоню в службу с помощью startService из
активность, новая служба создана или существующая до запуска службы
перезвонил?
Если служба запущена, она не создаст другую, она вызовет onStartCommand()
запущенной службы
как я могу позволить службе жить вечно, если я не скажу, что она умрет.
Это поведение по умолчанию