我们在做多线程下载的时候,或者是在加载h5界面的时候,常常会遇到网络状态不好或者断网的时候,在这或者当我们的应用程序启动没有退出的时候,我们就需要对网络状态监听加以判断。
这时候,我们一般情况下,两种方式进行处理。
第一: 开启服务。
第二:发送广播的形式。
建议采用方法二。
源代码如下:
广播:
-
-
-
- BroadcastReceiver connectionReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- ConnectivityManager connectMgr = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
- NetworkInfo mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
- NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
- if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
- Log.i("yuyahao", "断网了");
- Message msg = new Message();
- msg.what = DownLoadFileUtil.isNetConnectionError;
- mHandler.sendMessage(msg);
-
- }else {
-
- Log.i(TAG, "有来网了");
- }
- }
- };
注册:
-
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
- registerReceiver(connectionReceiver, intentFilter);
- showDialog();
- pool.execute(mUpdateUIThread);
其完整的代码如下:
方法1就是开启service的方式。代码很简单。