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