zoukankan      html  css  js  c++  java
  • Android 网络检测和网络监测 Binary

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

  • 相关阅读:
    网络编程之Tcp,udp
    网络编程简介
    面向对象之高级篇 反射,元类
    面向对象 高级篇
    面向对象,继承
    初识面向对象
    包 hashlib,logging
    模块
    Dango生命周期回顾与forms组件
    Django中auth登录、注册、修改密码、退出、ORM自关联
  • 原文地址:https://www.cnblogs.com/nmj1986/p/2410354.html
Copyright © 2011-2022 走看看