天天看點

Android 廣播監聽網絡狀态

我們在做多線程下載下傳的時候,或者是在加載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的方式。代碼很簡單。

繼續閱讀