Android 网络检测和网络监测

来源:互联网 发布:淘宝网钢笔明牌 编辑:程序博客网 时间:2024/06/05 20:07

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),如果网络可用则要做什么,如果网络不可以则要做什么。

原创粉丝点击