android检测网络连接是否存在(一)

简介: android检测网络连接是否存在(一)

在开发过程中,尤其是在开发网络应用的时候,时常要判断手机的联网状态,及时的给用户友善的提示。我们登录market,在网络断开的时候会及时的弹出警告窗口,避免用户盲目的等待。

这样的判断要贯穿在整个应用当中,在用户切换Activity,或者是后台service运行的时候都可能要用到。所以我们可以将判断的逻辑封装成一个方法,让其他Activity/service公用。

public static boolean isNetworkAvailable( Activity mActivity ) { 
    Context context = mActivity.getApplicationContext();
    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;
}
 
/**
   * 检测网络是否存在
   */
  public static void HttpTest(final Activity mActivity)
  {
    if( !isNetworkAvailable( mActivity) ){
      AlertDialog.Builder builders = new AlertDialog.Builder(mActivity);
      builders.setTitle("抱歉,暂时无法处理您的请求");
      LayoutInflater _inflater = LayoutInflater.from(mActivity);
      View convertView = _inflater.inflate(R.layout.error,null);
      builders.setView(convertView);
      builders.setPositiveButton("确定",  new DialogInterface.OnClickListener(){
        public void onClick(DialogInterface dialog, int which)
        {
          mActivity.finish();
        }       
      });
      builders.show();
    }
  }

这样我们在Activity的onCreate的时候或者onResume 的时候就只需要 调用这个方法。将当前的Activity.this当做参数传进去即可。

相关文章
|
3天前
|
缓存 网络协议 Java
Android面试题之Java网络通信基础知识
Socket是应用与TCP/IP通信的接口,封装了底层细节。网络通信涉及连接、读写数据。BIO是同步阻塞,NIO支持多路复用(如Selector),AIO在某些平台提供异步非阻塞服务。BIO示例中,服务端用固定线程池处理客户端请求,客户端发起连接并读写数据。NIO的关键是Selector监控多个通道的事件,减少线程消耗。书中推荐《Java网络编程》和《UNIX网络编程》。关注公众号AntDream了解更多。
11 2
|
3天前
|
XML JSON Java
Android面试题 之 网络通信基础面试题
序列化对比:Serializable码流大、性能低;XML人机可读但复杂;JSON轻量、兼容性好但空间消耗大;ProtoBuff高效紧凑。支持大量长连接涉及系统限制调整、缓冲区优化。select/poll/epoll是IO多路复用,epoll在高连接数下性能更优且支持边缘触发。水平触发持续通知数据,边缘触发仅通知新数据。直接内存减少一次拷贝,零拷贝技术如sendfile和MMAP提升效率。关注公众号"AntDream"了解更多技术细节。
7 1
|
5天前
|
Linux
【Linux】检测网络请求路径 traceroute
【Linux】检测网络请求路径 traceroute
9 0
|
6天前
|
机器学习/深度学习
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
【从零开始学习深度学习】21. 卷积神经网络(CNN)之二维卷积层原理介绍、如何用卷积层检测物体边缘
|
7天前
|
机器学习/深度学习 监控 算法
基于yolov2深度学习网络的昆虫检测算法matlab仿真,并输出昆虫数量和大小判决
YOLOv2算法应用于昆虫检测,提供实时高效的方法识别和定位图像中的昆虫,提升检测精度。核心是统一检测网络,预测边界框和类别概率。通过预测框尺寸估算昆虫大小,适用于农业监控、生态研究等领域。在matlab2022A上运行,经过关键升级,如采用更优网络结构和损失函数,保证速度与精度。持续优化可增强对不同昆虫的检测能力。![image.png](https://ucc.alicdn.com/pic/developer-ecology/3tnl7rfrqv6tw_e760ff6682a3420cb4e24d1e48b10a2e.png)
|
11天前
|
安全 Android开发 数据安全/隐私保护
同样的 APP 为何在 Android 8 以后网络感觉变卡?
【6月更文挑战第8天】Android 8 及以后系统中,APP 网络感觉变卡源于更严格的安全机制和后台限制,系统对网络优化的侧重改变,以及APP自身兼容性问题。开发者需优化APP,适应新系统,用户可更新APP或检查权限设置。通过共同努力,有望改善网络卡顿现象,提升用户体验。
|
13天前
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
35 7
|
13天前
|
算法
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
11 0
|
16天前
|
XML 网络协议 Java
53. 【Android教程】Socket 网络接口
53. 【Android教程】Socket 网络接口
16 0
|
19天前
|
JSON Android开发 开发者
构建高效Android应用:采用Kotlin协程优化网络请求
【5月更文挑战第31天】 在移动开发领域,尤其是针对Android平台,网络请求的管理和性能优化一直是开发者关注的焦点。随着Kotlin语言的普及,其提供的协程特性为异步编程提供了全新的解决方案。本文将深入探讨如何利用Kotlin协程来优化Android应用中的网络请求,从而提升应用的响应速度和用户体验。我们将通过具体实例分析协程与传统异步处理方式的差异,并展示如何在现有项目中集成协程进行网络请求优化。

热门文章

最新文章