我們在做多線程下載下傳的時候,或者是在加載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);
// unconnect network
}else {
// connect network
Log.i(TAG, "有來網了");
}
}
};
注冊:
//有網絡 的時候在注冊網絡監聽廣播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(connectionReceiver, intentFilter);
showDialog();
pool.execute(mUpdateUIThread);
其完整的代碼如下:
方法1就是開啟service的方式。代碼很簡單。