0
我注册的广播来获得ConnectivityManager.CONNECTIVITY_ACTION广播,代码为:安卓:ConnectivityManager.CONNECTIVITY_ACTION,发送当网连接的状态没有改变
registerReceiver(mNetwrokBroadcastReceiver, new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION));
和接收器是:
private BroadcastReceiver mNetwrokBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
boolean isConnected = false;
NetworkInfo mNetworkInfo = intent
.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo.State state = (mNetworkInfo == null ? NetworkInfo.State.UNKNOWN
: mNetworkInfo.getState());
switch (state) {
case CONNECTED:
isConnected = true;
break;
case DISCONNECTING:
if (intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false))
isConnected = false;
else {
isConnected = true;
}
break;
default:
break;
}
if (isConnected) {
mPopwin.onDismiss();
init();
}
}
};
但我发现当网始终连接,它也发送广播,为什么? 还有一个相同的question,我找不到它。我的意思是,我在一个活动的init中注册一个过滤器为“ConnectivityManager.CONNECTIVITY_ACTION”的广播,当网络一直连接时,我开始活动,执行函数“onReceive”;在google doc中表示“网络连接发生了变化”,但网络没有变化,为什么要执行onReceive?
你的问题不明确。请详细说明或让您的问题更清楚。 –
好吧,我编辑了 – Mejonzhan
看到我对这个问题的回答http://stackoverflow.com/a/16428823/769265 –