Android網(wǎng)絡(luò)狀態(tài)實時監(jiān)聽實例代碼(二)
上篇文章給大家介紹了Android 網(wǎng)絡(luò)狀態(tài)實時監(jiān)聽代碼實例(一),感興趣的朋友可以點(diǎn)擊了解詳情,本文接著給大家介紹android網(wǎng)絡(luò)狀態(tài)監(jiān)聽相關(guān)知識,具體內(nèi)容如下所示:
在開發(fā)android應(yīng)用時,涉及到要進(jìn)行網(wǎng)絡(luò)訪問,時常需要進(jìn)行網(wǎng)絡(luò)狀態(tài)的檢查,以提供給用戶必要的提醒。一般可以通過ConnectivityManager來完成該工作。
ConnectivityManager有四個主要任務(wù):
1、監(jiān)聽手機(jī)網(wǎng)絡(luò)狀態(tài)(包括GPRS,WIFI, UMTS等)
2、手機(jī)狀態(tài)發(fā)生改變時,發(fā)送廣播
3、當(dāng)一個網(wǎng)絡(luò)連接失敗時進(jìn)行故障切換
4、為應(yīng)用程序提供可以獲取可用網(wǎng)絡(luò)的高精度和粗糙的狀態(tài)
當(dāng)我們要在程序中監(jiān)聽網(wǎng)絡(luò)狀態(tài)時,只要一下幾個步驟即可:
1、定義一個Receiver重載其中的onReceive函數(shù),在其中完成所需要的功能,如根據(jù)WIFI和GPRS是否斷開來改變空間的外觀或者提示是否能訪問網(wǎng)絡(luò)
package com.bsharksdk.receiver; import com.bsharksdk.main.BSharkApi; import com.bsharksdk.ui.BSToast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; /** * @author Javen * */ public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { BSToast.showLong(context, "網(wǎng)絡(luò)不可以用"); //改變背景或者 處理網(wǎng)絡(luò)的全局變量 }else { //改變背景或者 處理網(wǎng)絡(luò)的全局變量 } } }
2、在適當(dāng)?shù)牡胤阶訰eceiver,可以在程序中注冊,在onCreate中調(diào)用如下函數(shù)即可:
private void registerReceiver(){ IntentFilter filter=new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); myReceiver=new ConnectionChangeReceiver(); this.registerReceiver(myReceiver, filter); }
3、在適當(dāng)時取消注冊Receiver,可以在程序中取消,在onDestroye中調(diào)用如下函數(shù)即可:
private void unregisterReceiver(){ this.unregisterReceiver(myReceiver); }
記得在 Activity中 設(shè)置變量 private ConnectionChangeReceiver myReceiver;
記得添加訪問網(wǎng)絡(luò)需要的權(quán)限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET" />
以上所述是小編給大家介紹的Android網(wǎng)絡(luò)狀態(tài)實時監(jiān)聽實例代碼(2),希望對大家有所幫助!
相關(guān)文章
Android自定義ProgressDialog進(jìn)度等待框
這篇文章主要介紹了Android自定義ProgressDialog進(jìn)度等待框,通過本文大家可以嘗試?yán)肁ndroid自定義ProgressDialog,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-01-01NestScrollView嵌套RecyclerView實現(xiàn)淘寶首頁滑動效果
這篇文章主要介紹了NestScrollView嵌套RecyclerView實現(xiàn)淘寶首頁滑動效果,主要實現(xiàn)淘寶首頁嵌套滑動,中間tab吸頂效果,以及介紹NestScrollView嵌套RecyclerView處理滑動沖突的方法,需要的朋友可以參考下2021-12-12Android網(wǎng)格布局GridView實現(xiàn)漂亮的多選效果
這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)格布局GridView實現(xiàn)漂亮的多選效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Android中通過訪問本地相冊或者相機(jī)設(shè)置用戶頭像實例
本篇文章主要介紹了Android中通過訪問本地相冊或者相機(jī)設(shè)置用戶頭像,具有一定的參考價值,有興趣的可以了解一下。2017-01-01Android ProgressBar進(jìn)度條使用詳解
ProgressBar進(jìn)度條,分為旋轉(zhuǎn)進(jìn)度條和水平進(jìn)度條,進(jìn)度條的樣式根據(jù)需要自定義,這篇文章主要介紹了Android ProgressBar進(jìn)度條使用方法,感興趣的小伙伴們可以參考一下2016-02-02Android Retrofit文件下載進(jìn)度顯示問題的解決方法
這篇文章主要為大家詳細(xì)介紹了Android Retrofit文件下載進(jìn)度顯示問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01