Android检测网络状况
2015-11-05 20:11
791 查看
功能:当网络不可用时Toast提示。
使用步骤:
1、注册权限
2、编写NetworkStatusReceiver 类继承 BroadcastReceiver 复写 onReceive方法
3、在基类的 onCreate()方法中注册(这样所有继承基类的activity都会监听,也可以根据实际需要,包装到基类的一个方法中,由子类决定是否调用以监听网络状况。)
4、在基类的onDestroy()方法中取消注册(如果依照上述操作在子类中调用注册广播的方法,则在基类的onDestroy()方法中取消注册前还应当判断对应的广播接收者networkStatusReceiver是否为空。)
使用步骤:
1、注册权限
<!-- SecurityException --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2、编写NetworkStatusReceiver 类继承 BroadcastReceiver 复写 onReceive方法
package receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.widget.Toast; /** * 检测网络状况广播接收者 * @author chenql */ public class NetworkStatusReceiver extends BroadcastReceiver { private ConnectivityManager connectivityManager; private NetworkInfo networkInfo; @Override public void onReceive(Context context, Intent intent) { connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo == null || !(networkInfo.isAvailable())) { // 网络不可用时提示 Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show(); } } }
3、在基类的 onCreate()方法中注册(这样所有继承基类的activity都会监听,也可以根据实际需要,包装到基类的一个方法中,由子类决定是否调用以监听网络状况。)
IntentFilter intentFilter = new IntentFilter(); // 添加监听网络状况的action intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); NetworkStatusReceiver networkStatusReceiver = new NetworkStatusReceiver(); registerReceiver(networkStatusReceiver, intentFilter);
4、在基类的onDestroy()方法中取消注册(如果依照上述操作在子类中调用注册广播的方法,则在基类的onDestroy()方法中取消注册前还应当判断对应的广播接收者networkStatusReceiver是否为空。)
@Override protected void onDestroy() { super.onDestroy(); if (networkStatusReceiver != null) { unregisterReceiver(networkStatusReceiver); } }
相关文章推荐
- iOS 网络请求测试图
- TCP协议和UDP协议的区别
- 多线程与网络B
- poj 1459 Power Network 网络流
- 王高利:TCP Wrappers访问控制(hosts.allow,hosts.deny)
- 多线程与网络A
- Android 之AsyncHttpClient
- TCP的三次握手,四次挥手
- Android的网络连接HttpUrlConnection
- SQL触发器trigger和网络路由tracert学习随笔
- 论HTTP请求大小
- 基于 HTTP 长连接的“服务器推”技术
- 黑马程序员——JAVA基础----网络编程
- HTTP必知必会
- HttpClient使用详解
- Android网络通信必备神器Volley详解——初识Volley
- iOS 获取网络状态 判断3G 、4G类型
- 关于HTTP的工作原理
- 打算闲的时候写一个tcp_pool.刚开始做,就结束了.因为我走到了死胡同.
- Web Service 一些对外公开的网络服务接口