Что происходит с активными сокетами, когда Android переходит в режим глубокого сна?

У меня проблемы с подключением к сокету, я могу оставить приложение работать в фоновом режиме и вернуться, и все работает нормально. Когда я открываю несколько приложений для очистки памяти устройства, мое приложение и его служба уничтожаются, а когда я возвращаюсь к нему, все воссоздается, как и ожидалось. Пока ничего плохого. Проблема возникает, когда я НЕ делаю этого, когда я оставляю свое приложение в фоновом режиме и просто выключаю экран на длительный период времени (15 минут). У меня есть живое соединение с сокетом, живущее в службе, которая, по-видимому, «отключается». Сама служба НЕ убивается. Я в этом уверен, но связь почему-то перестает отвечать.

У меня есть подозрения, что виноват глубокий сон по двум причинам. 1. На эмуляторе такого никогда не бывает. 2. Этого никогда не происходит на моем устройстве при подключении через USB.

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

Я использую firebase кстати. :)


person frankelot    schedule 23.05.2015    source источник
comment
Может быть. Эта помощь по фургону. stackoverflow.com/questions/9363389/   -  person android_user77    schedule 23.05.2015
comment
Спасибо! Я это попробую. Это займет у меня некоторое время, так как проблему немного сложно воспроизвести. Я дам вам знать, как это было   -  person frankelot    schedule 23.05.2015
comment
Вы нашли решение этой проблемы? У меня в принципе такая же проблема.   -  person Chriszuma    schedule 12.01.2018
comment
Я не нашел решения, мне пришлось изменить свой подход. Android OREO накладывает более строгие правила для фоновых приложений в целях экономии заряда батареи, поэтому я не удивлюсь, если соединение сразу же прервется: developer.android.com/about/versions/oreo/background.html   -  person frankelot    schedule 13.01.2018