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