Android 网络检测和网络监测

Android  App上与网络相关操作有的时候需要用到网络监听,有的时候则不需要,为什么?

 

结合本人的经验,描述如下:

  (1)在Android手机上面需要用到网络的时候,我们需要先判断网络是否可用。此时,需要用到ConnectivityManager类,使用该类读取客户端网络信息(如:是否有网等)。如果我们能控制“检测网络状态”这个步骤(如:点击一次按钮触发一次网络状态检测),那么,则只需要用到ConnectivityManager即可;

  (2)而当我们不能控制到底在什么时候触发“检测网络状态”这个步骤的时候,一般情况下,均在网络发生变化(从有网变为无网,从无网变为有网)的时候触发“检测网络是否可用”,此时就需要用到“网络监测”了。

      注册网络监测器代码如下(代码来自:http://www.eoeandroid.com/thread-112224-1-1.html):    

  1. 复制代码
        /* 注册网络监听*/
        IntentFilter filter = new IntentFilter();
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        registerReceiver(mNetworkStateReceiver, filter);
            
        /* 在Activity中的onDestroy中取消监听*/
        unregisterReceiver(mNetworkStateReceiver);
    复制代码

    注册网络监听的目的为:监听网络状态是否发生改变

  (3)网络监听和网络状态检测两者结合所能解决的问题为: 根据网络状态变化自动检测网络是否可用,再根据其是否可用做相应操作。

      使用情景示例:文件上传时,网络断开,此时中断文件上传;当网络恢复时,继续续传文件。

      具体功能描述:网络状态发生变化(有网无网)的时候触发网络状态检测事件——先检测网络状态是否改变(网络广播接收器),若改变则需要判断当前网络状态是否可用(ConnectivityManager),如果网络可用则要做什么,如果网络不可以则要做什么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值