В моем приложении у меня есть BroadcastReceiver
, который запускается как компонент через тег <receiver>
, фильтруя android.net.conn.CONNECTIVITY_CHANGE
намерения.
Моя цель - просто знать, когда было установлено соединение Wi-Fi, так что я делаю в onReceive()
:
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected()) {
// Wifi is connected
}
Он работает нормально, но я всегда получаю два идентичных намерения в течение примерно одной секунды, когда установлено соединение Wi-Fi. Я попытался просмотреть любую информацию, которую я мог получить от намерения, ConnectivityManager
и WifiManager
, но я не могу найти ничего, что отличает два намерения.
Посмотрев на журнал, есть хотя бы еще один BroadcastReceiver
, который также получает два идентичных намерения.
Он работает на HTC Desire с Android 2.2
Любая идея, почему я, похоже, получаю "дублированное" намерение, когда Wifi подключается или какая разница между этими двумя?