У нас тоже один преподаватель колледжа пришел и за счет своего умелого общения с руководством через 2 года стал тимлидом. В жизни знания не всегда играют решающую роль. В моей ИТ компании почти все руководители посредственные программисты. Зато они умеют находить общий язык с руководством. Я недавно понял одну вещь, что миром правят пройдохи и негодяи!
Спасибо за подсказку! GCM уже начал изучать, а вот про wakelock даже в голову не приходило. Пишут с 8 андроида фоновым сетевым соединениям вообще трындец настанет, так что похоже надо на GCM по любому переходить.
Какие продукты написал? Есть что на Google Play посмотреть? Я только год в Андроиде, свою первую прогу написал, выложил в сеть. Смотрю, а у пользователей связь рвется через некоторое время. Вот и нашел эту особенность с потерей сети в сервисах. Сам Google рекомендует использовать FCM сервис оповещений для фоновых приложений. Хотя я смотрю у WhatsApp соединение с XMPP сервером постоянное. Как они умудряются это делать в фоне непонятно.
Да, странная вещь у меня получилась. Если сервис словил ошибку соединения, то он будет периодически слать запросы на подключение серверу (SYN_SENT), а запросы подтверждения (SYN_ACK) почему-то будут блокироваться. Стоит только активность запустить, сразу же соединение устанавливается. Может это на моих Xiaomi (5.1.1, 6.0.1) какая-то особенность.
Порылся в направлении сокетов. Все корректно закрывается, портов открытых нет, сниффер показывает пустоту. Лишь мелькает запрос раз в 10 секунд SYN_SENT и все (на 5.1.1). На 4.1.2 работает без сбоев.
Спасибо за ответ! Да, попробую в направлении закрытия сокетов порыть. Хотя я пробовал использовать хваленую библиотеку async-http, ничего не меняется. Сниффером смотрел, система создает каждый раз новый порт. После перезапуска сервиса, http запросы в телефоне висят в состоянии SYN-SENT, т.е. запрос на открытие порта отправляется на сервер, но обратный пакет SYN-ACK похоже блокируется системой.
Спасибо за статьи! Очень интересно!
Вопрос есть, я столкнулся с проблемой передачи данных по сети. ru.stackoverflow.com/questions/725580/android-http-connection-refused
Мой сервис, каждые 10 секунд отправляет данные на сервер. Сервис Sticky.
На Андроид 4.1.2 все работает хорошо, а на Андроид 5.1.1 нет. Как только система уничтожит сервис при нехватке памяти, то после перезапуска сервиса отправка данных на сервер перестает работать. Если вручную удалить приложение из списка задач и запустить снова, то отправка начинает работать. Также отправка возобновляется, если я снова жму иконку программы в списке задач. Насколько я понял из статьи с 5.0 версии Андроида используется новая JVM. Не с этим ли связана эта проблема? Как мне ее решить? Запускать activity и service в разных процессах? У меня возникло ощущение, что система прибивая процесс и запуская его снова, оставляет заблокированными сетевые порты.
Вопрос есть, я столкнулся с проблемой передачи данных по сети.
ru.stackoverflow.com/questions/725580/android-http-connection-refused
Мой сервис, каждые 10 секунд отправляет данные на сервер. Сервис Sticky.
На Андроид 4.1.2 все работает хорошо, а на Андроид 5.1.1 нет. Как только система уничтожит сервис при нехватке памяти, то после перезапуска сервиса отправка данных на сервер перестает работать. Если вручную удалить приложение из списка задач и запустить снова, то отправка начинает работать. Также отправка возобновляется, если я снова жму иконку программы в списке задач. Насколько я понял из статьи с 5.0 версии Андроида используется новая JVM. Не с этим ли связана эта проблема? Как мне ее решить? Запускать activity и service в разных процессах? У меня возникло ощущение, что система прибивая процесс и запуская его снова, оставляет заблокированными сетевые порты.