Приветствую.
Имеется приложение, которое подключается к серверу и держит с ним соединение.
Реализовано это в виде сервиса, который запускает клиента в AsyncTask.
Если телефон засыпает, то через 5-10 минут сокет перестает получать входящие сообщения, при том, что сервер их успешно отправляет. Если "разбудить" сокет исходящим сообщением на сервер, то через какое-то время (не сразу, 5-10-15-20 секунд) до клиента долетять отправленные сообщения. Сервис будится входящими смс. Если прилетело смс - идет отправка запроса на сервер.
Для большего понимания:
Пример 1.
Запустил приложение. Подождал 5-10 минут. Отправил смс на тф. Приложение отправило запрос на сервер, сервер ответил, приложение ответ НЕ получило. Сразу отправил вторую смс - приложение отправило запрос на сервер, сервер ответил, приложение ответ ПОЛУЧИЛО.
Пример 2.
Запустил приложение. Подождал... Отправил запрос с сервера. Он не пришел. Отправил смс, запрос от приложения на сервер пришел. Сервер ответил. Через 10-15 секунд на клиент прилетает предыдущий запрос (отправленный до смс) и следом ответ от сервера.
Сломал весь мозг себе. Помогайте)
Код сервиса:
pastebin.com/twKGic9X