ОС: Андроид
Дано: пользователь заявил, что хочет оставаться на связи с сервером приложения, чтобы получать обновления и т. д.
Цель: обеспечить подключение пользователей к серверу приложения, даже когда приложение находится в фоновом режиме.
Вопрос: Одной из проблем были случайные отключения от сети. Если пользователь теряет подключение к сети передачи данных (потеря 2G, 3G, WiFi), а затем восстанавливает подключение, наше приложение остается без подключения. В настоящее время я пытаюсь использовать PhoneStateListener
для обнаружения различные сетевые изменения и, таким образом, перезапускать соединение с сервером, когда это необходимо. На моем Nexus One (2.1) я обнаружил, что onSignalStrengthsChanged
и onDataConnectionStateChanged
не вызываются, за исключением случаев, когда слушатели изначально зарегистрированы, но не после этого. Слушатели зарегистрированы внутри службы, поэтому они постоянно прослушивают, пока служба жива (что мы можем предположить как «навсегда» для целей этого вопроса). У кого-нибудь еще были проблемы с прослушиванием состояния подключения к данным?
onServiceStateChanged
кажется пока самым надежным, но я хотел знать, добились ли люди успеха и с другими слушателями.