2014-01-07 3 views
0


Я разрабатываю мобильное приложение, которое должно восстановить его соединение, когда мобильный телефон переключается с Wi-Fi на мобильный, от мобильного до Wi-Fi, от Wi-Fi или мобильного телефона до сети и от сети до Wi-Fi или мобильного телефона.
Я уже написал объект BroadcastReceiver, который ловит намерения CONNECTIVITY_CHANGE, и я получил объект ConnectivityManager из контекста. Затем я создаю объект NetworkInfo.
Вопрос в том, почему я получаю два намерения каждый раз, когда я переключаю тип сети (я получаю только одно сообщение, когда выключаю сеть).
Я предполагаю, что целью первого намерения является уведомление о том, что активное соединение выключено, а второе намерение - сообщить, что система переключилась на другое активное соединение, но я не уверен в этом и как проверить его в приемнике ,
Есть ли у кого-нибудь фрагмент кода для правильного ведения такого рода событий?Каким будет лучший способ обработки изменений соединения с Android?

Спасибо за ваш ответ.

С уважением

ответ

0

Это ответ на ваш вопрос:

Почему я получаю два намерения каждый раз, когда я включаю тип сети (я получаю только одно сообщение, когда я выключаю сеть).

Вы получаете два вызова, потому что «CONNECTIVITY_CHANGE» посылает в эфир, когда соединение либо было установлено или потеряно в Googles документации, поэтому при изменении типа сети, вы потеряли связь в одном (это один вызов) и вы установили соединение в другой сети (второй звонок), теперь, когда вы выключаете сеть, вы получаете только потерянный звонок. Обратите внимание, что «CONNECTIVITY_CHANGE» сообщит вам о действиях, которые происходят в сетях, но вы должны запросить эту информацию из ConnectivityManager, когда это произойдет, чтобы узнать, какая сеть потеряла/установила соединение и т. Д.

Надеюсь, что это поможет.

С уважением!

+0

Thx Martin, я не был уверен в этом. Можно ли определить тип потерянного соединения, когда я получу первое сообщение? Как проверить, является ли это сообщение потерей соединения? – onizukaek

Смежные вопросы