在android中,如果网络断开 ,系统会自动发送一个广播,我们要注册一个广播监听器,当收到这个广播的时候做自己的处理即可,

自己也网上找了资料,如下

http://dwtedx.com/itshare_269.html

http://bbs.9ria.com/thread-213359-1-1.html

http://blog.csdn.net/chenzheng_java/article/details/6387116


private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {@SuppressWarnings("deprecation")@Overridepublic void onReceive(Context context, Intent intent) {ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);NetworkInfo mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);Bundle bundle = intent.getExtras();NetworkInfo aNetworkInfo = (NetworkInfo) bundle.get(ConnectivityManager.EXTRA_NETWORK_INFO);if (aNetworkInfo != null) {if (aNetworkInfo.isConnected()) {//表示网络已连接} else if (!wifi.isConnected() && !mobile.isConnected()) {//表示wifi和数据连接都断开了,可以弹出一个toast等}}}};


使用方法也很简单

在onResumef方法里注册这个广播

registerReceiver(mBroadcastReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));


最后记得在onPause里注销

unregisterReceiver(mBroadcastReceiver);

-------------分割线------------

20161205补充 如果不想使用广播,可以直接用下面的方法即可判断是否离线

/** 判断是否有可用网络 */public static boolean existAvailableNetwork(Context context) {ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (connectivity == null) {return false;} else {NetworkInfo[] info = connectivity.getAllNetworkInfo();if (info != null) {for (int i = 0; i < info.length; i++) {if (info[i].getState() == NetworkInfo.State.CONNECTED) {return true;}}}}return false;}



更多相关文章

  1. Android:网络编程及Internet应用
  2. android通过usb读取U盘的方法
  3. Android手机亮屏流程分析
  4. TelephonyManager类:Android手机及Sim卡状态的获取
  5. Android(安卓)背景虚化实现
  6. 网络请求Volley篇【Android】
  7. 如何卸载Eclipse中ArcGIS for Android的旧版本?
  8. android实现在线播放流媒体
  9. Android获取系统时间以及网络时间

随机推荐

  1. android学习----ProgressBar 进度条
  2. application全局变量
  3. 获取android系统信息或应用程序信息
  4. android webview实现唤起qq临时会话
  5. android 打开系统程序 显示系统图片与视
  6. Android Dialog定义没有标题的注意事项
  7. Android定时自动启动应用程序
  8. android edittext password hint字体不同
  9. android调用系统(相机)的图片,并且返回
  10. Android监听未接来电