Android 動態(tài)注冊監(jiān)聽網(wǎng)絡(luò)變化實(shí)例詳解
Android 動態(tài)注冊監(jiān)聽網(wǎng)絡(luò)變化實(shí)例詳解
新建一個BroadcastTest項(xiàng)目,然后修改MainActivity中的代碼,如下:
public class MainActivity extends AppCompatActivity {
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); //廣播接收器想要監(jiān)聽什么廣播,就在這里添加相應(yīng)的action
networkChangeReceiver=new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver,intentFilter); //調(diào)用resigerReceiver()方法進(jìn)行注冊
}
@Override
protected void onDestroy(){
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent){
// Toast.makeText(context,"network changes",Toast.LENGTH_SHORT).show();
ConnectivityManager connectionManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); //得到系統(tǒng)服務(wù)類
NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo();
if(networkInfo!=null&&networkInfo.isAvailable()){
Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show();
}
}
}
}
動態(tài)注冊的廣播接收器一定要取消注冊才行,在onDestroy()方法中通過調(diào)用unregisterReceiver()方法來實(shí)現(xiàn)。
訪問系統(tǒng)的網(wǎng)絡(luò)狀態(tài)需要聲明權(quán)限,打開AndroidManifest.xml文件,在里面加入權(quán)限,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.broadcasttest">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
運(yùn)行程序,打開數(shù)據(jù)連接、關(guān)閉數(shù)據(jù)連接,效果如下:


以上就是Android 動態(tài)注冊監(jiān)聽網(wǎng)路變化的實(shí)例詳解,如果大家有疑問可以留言或者到本站社區(qū)交流,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android 7.0 監(jiān)聽網(wǎng)絡(luò)變化的示例代碼
- android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)的變化及實(shí)戰(zhàn)的示例代碼
- Android 監(jiān)聽網(wǎng)絡(luò)狀態(tài)方法詳解
- Android編程監(jiān)聽網(wǎng)絡(luò)連接狀態(tài)改變的方法
- Android 實(shí)時監(jiān)測(監(jiān)聽)網(wǎng)絡(luò)連接狀態(tài)變化
- Android 廣播監(jiān)聽網(wǎng)絡(luò)狀態(tài)詳解及實(shí)例代碼
- Android網(wǎng)絡(luò)狀態(tài)實(shí)時監(jiān)聽實(shí)例代碼(二)
- Android 網(wǎng)絡(luò)狀態(tài)實(shí)時監(jiān)聽代碼實(shí)例(一)
- Android中監(jiān)聽判斷網(wǎng)絡(luò)連接狀態(tài)的方法
- Android 對手機(jī)網(wǎng)絡(luò)的檢測和監(jiān)聽的方法示例
相關(guān)文章
android屏蔽按鈕連續(xù)點(diǎn)擊的示例代碼
這篇文章主要介紹了android屏蔽按鈕連續(xù)點(diǎn)擊的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
在Android中如何使用DataBinding詳解(Kotlin)
這篇文章主要給大家介紹了關(guān)于在Android中如何使用DataBinding(Kotlin)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
簡單實(shí)現(xiàn)Android鬧鐘程序 附源碼
這篇文章主要幫助大家簡單實(shí)現(xiàn)Android鬧鐘程序,附源碼下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
Android開發(fā)獲取短信的內(nèi)容并截取短信
本文給大家介紹android開發(fā)獲取短信內(nèi)容并截取短息的相關(guān)內(nèi)容,本文代碼簡單易懂,感興趣的朋友一起學(xué)習(xí)吧2015-12-12
android暫?;蛲V蛊渌魳凡シ牌鞯牟シ艑?shí)現(xiàn)代碼
來自android自帶的music源碼,下面是廣播接收的代碼,通過發(fā)送廣播來控制音樂的播放,停止等2013-11-11
Android使用fastjson庫解析json字符串實(shí)戰(zhàn)
fastjson是一個Java語言編寫的高性能功能完善的JSON庫,它采用一種“假定有序快速匹配”的算法,把JSON?Parse的性能提升到極致,是目前Java語言中最快的JSON庫,Fastjson接口簡單易用,已經(jīng)被廣泛使用在緩存序列化、協(xié)議交互、Web輸出、Android客戶端等多種應(yīng)用場景2023-11-11

