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的方式。代碼很簡單。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答