Android杂谈之网络实时监测
16lz
2021-01-23
Android监测网络状态分四步步进行
1.定义一个广播接收者
private BroadcastReceiver myNetReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { mConnectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); netInfo = mConnectivityManager.getActiveNetworkInfo(); TextView networkState = (TextView) MainActivity.this.findViewById(R.id.network_state); if(netInfo != null && netInfo.isAvailable()) { String name = netInfo.getTypeName(); if(netInfo.getType()==ConnectivityManager.TYPE_WIFI || netInfo.getType()==ConnectivityManager.TYPE_ETHERNET || netInfo.getType()==ConnectivityManager.TYPE_MOBILE){ //网络连接 ,隐藏控件 networkState.setVisibility(View.GONE); } } else { //网络断开 ,显示控件 networkState.setVisibility(View.VISIBLE); } } } };
2.重写onDestroy(),在Activity销毁时注销广播
@Override public void onDestroy() { super.onDestroy(); //注销广播 if(myNetReceiver!=null){ unregisterReceiver(myNetReceiver); } }
3.在onCreate方法中注册广播
//注册广播IntentFilter mFilter = new IntentFilter();mFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(myNetReceiver, mFilter);
最后别忘了配置权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
更多相关文章
- Android中处理Json的网络获取实例
- android 系统定制的小技巧(网络收集)
- Android 网络请求框架android-async-http简单使用
- android中获取一个xml布局中一个控件的宽高.
- Android 中日期控件与下拉列表的使用
- Android如何实时监听网络状态.
- Android中在Button控件上显示倒计时
- Android学习--使用url访问网络资源
- Android SwipeMenuRecyclerView控件的用法