APP开发中,网络已成为一款应用的必须的,有时需求需要随时监测网络变化,实现起来其实很简单:
1.创建广播接受者
public class NetWorkChangeReceiver extends BroadcastReceiver {
public NetWorkChangeReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectMgr = (ConnectivityManager) getActivity()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
/**unconnect network*/
ZLog.i("net connect -->fasle");
mNetStatus.setText(R.string.net_offline);//网络断开连接
} else {
/**connect network*/
ZLog.i("net connect -->true");
mNetStatus.setText(R.string.net_online);//网络已连接
}
}
}
2.在BaseActivity的onStart()方法中启动服务
@Override
protected void onStart() {
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(new NetWorkChangeReceiver(), filter);
super.onStart();
}
在onStop()中注销广播
@Override
protected void onStop() {
unregisterReceiver(mNetWorkChangeReceiver);
super.onStop();
}