`

监测网络状态,离线/在线应用程序的实现

    博客分类:
  • flex
阅读更多

AIR与Flex web应用的另一区别在于可以动态监测网络状态,可以让开发者在网络连通或断线时用不同的方式处理程序,在Demo中我将用以下情况来表现AIR的离线与在线应用。

1. 用户在文本框中输入内容。文本框下方的保存按钮会动态显示当前网络状态: (在线)保存与(离线)保存.
2. 在用户点击保存按钮时如果网络在线,将对话框内容保存在服务器。
3. 如果保存时处于断线状态,将内容保存在本地文件中。
4. 当网络恢复时检查本地文件,如果有已经保存的内容,将内容传入服务器。

源代码很简单,不到100行,大家可以在最下方下载。现在我开始讲解

Demo操作方法

1. 按装运行demo,如果网络连接正常,你会看到文本框下的按钮为 (在线) 保存。
2. 输入任意信息,点击 (在线)保存 。你会看倒信息 “内容已上传服务器”。
3. 切断网络。大概3-5秒后你会看到文本框下方按钮变为(离线)保存。
4. 点击保存,你会看倒信息“内容已经在本地保存,会在下次连线时自动上传到服务器”。
5. 接痛网络,大概3--5秒后你会看倒信息 “缓存内容已上传服务器”。
6. Demo结束。

1. 启动应用程序后监控网络状态。

我们在 App的CreationComplete()中调用netWorkSyc来监控网络状态。

private function networkSyc():void{
//创建一个联接,使用HEAD表示不需要加载玩全部的页面。
var request:URLRequest = new URLRequest( “http://www.google.com”);
request.method = “HEAD”;

//用url创建监测对象,每3秒检查一次网络状态,如果网络状态发生变化,将结果返回到netWorkStatusHandle()
urlMonitor = new URLMonitor(request);
urlMonitor.pollInterval = 3000;
urlMonitor.addEventListener(StatusEvent.STATUS,netWorkStatusHandle);
urlMonitor.start();
}

//网络状态改变时响应该事件
private function netWorkStatusHandle(e:StatusEvent):void{
if(urlMonitor.available){
//如果有本地文件,假装上传服务器
if(this.checkLoaclFile()){
//Kevin TODO 上传服务骑
this.showAlert(”缓存内容已上传服务器”);
}
saveBtn.label = “(在线)保存”
}else{
saveBtn.label = “(离线)保存”
}
}

上面的networkSyc()方法中我使用了两个类的对象来实现网络监控,URLRequest 和 URLMonitor。我用URLRequest来建立一个连接对象request,连接的地址是www.google.com。然后已request作为构造参数创建URLMonitor对象。我就是靠它来完成对网络状态的监控。

监控原理很简单,当第一次执行networkSyc()时,urlMonitor会尝试连接www.google.com,然后将连接的结果发回到 netWorkStatusHandle(), 如果连接成功,urlMonitor.available会为true,反之为false。接下来每3秒检查一次网络状态,如果发生改变(连接成功变为连接失败或者连接失败变为连接成功),那么将再度触发StatusEvent.STATUS事件,调用netWorkStatusHandle()返回网络状态。

以上就是AIR监控网络的方式,大家如果感兴趣想知道更多URLMonitor的内容,可以在Help中搜索ServiceMonitor,它的sub class就是URLMonitor和SockterMonitor。

Demo中并没有真正在本地保存文件,保存与读取文件的方法我会在下一篇教程–“AIR的文件操作”中教给大家。

webstate

源文件下载
Demo

分享到:
评论

相关推荐

    海康威视热成像测温客户端用户手册.pdf

    测温客户端是一款专用于热成像设备的软件,支持在线测温和离线测温两种方式。在线测温通过连接设备,实时监测现场温度变化;离线测温则通过分析录像或抓拍的图片对测温数据进行二次分析。测温客户端具有长时间不间断...

    VC与Labview、Matlab编程论文资料[2].rar

    MFC应用程序拆分窗口的同步更新方法研究.pdf MFC数据库访问接口技术.pdf MFC框架下成员函数访问和回调函数中访问类成员函数.pdf MFC框架下的多通道视景仿真技术.pdf MFC消息响应函数的逆向定位.pdf MFC消息映射...

    VC与Labview、Matlab编程论文资料

    MFC应用程序拆分窗口的同步更新方法研究.pdf MFC数据库访问接口技术.pdf MFC框架下成员函数访问和回调函数中访问类成员函数.pdf MFC框架下的多通道视景仿真技术.pdf MFC消息响应函数的逆向定位.pdf MFC消息映射...

    VC与Labview、Matlab编程论文资料[4].rar

    MFC应用程序拆分窗口的同步更新方法研究.pdf MFC数据库访问接口技术.pdf MFC框架下成员函数访问和回调函数中访问类成员函数.pdf MFC框架下的多通道视景仿真技术.pdf MFC消息响应函数的逆向定位.pdf MFC消息映射...

    Netdata性能实时监测工具-其他

    Netdata是一个高度优化的Linux守护进程,它为Linux系统,应用程序,SNMP服务等提供实时的性能监测。 它用可视化的手段,将被监测者最细微的细节,展现了出来。这样,你便可以清晰地了解你的系统和应用程序此时的状况...

    asp.net知识库

    将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 中的数据源控件 使用 ASP.NET 2.0 ObjectDataSource 控件 ASP.NET 2.0 的内部变化 使用SQL Cache Dependency 代替 ...

    最全Hibernate 参考文档

    3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. JTA和Session的自动绑定 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 为...

    Hibernate3+中文参考文档

    11.3.1. 应用程序级别的版本检查(Application version checking) 11.3.2. 长生命周期session和自动版本化 11.3.3. 脱管对象(deatched object)和自动版本化 11.3.4. 定制自动版本化行为 11.4. 悲观锁定(Pessimistic ...

    hibernate 框架详解

    应用程序级别的版本检查(Application version checking) 12.3.2. 长生命周期session和自动版本化 12.3.3. 脱管对象(deatched object)和自动版本化 12.3.4. 定制自动版本化行为 12.4. 悲观锁定(Pessimistic ...

    hibernate3.04中文文档.chm

    12.3.1. 应用程序级别的版本检查(Application version checking) 12.3.2. 长生命周期session和自动版本化 12.3.3. 脱管对象(deatched object)和自动版本化 12.3.4. 定制自动版本化行为 12.4. 悲观锁定...

    Hibernate教程

    12.3.1. 应用程序级别的版本检查(Application version checking) 12.3.2. 长生命周期session和自动版本化 12.3.3. 脱管对象(deatched object)和自动版本化 12.3.4. 定制自动版本化行为 12.4. 悲观锁定...

    hibernate 体系结构与配置 参考文档(html)

    第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射...

    Hibernate参考文档

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    Hibernate 中文 html 帮助文档

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    Hibernate中文详细学习文档

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    Hibernate+中文文档

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    HibernateAPI中文版.chm

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    hibernate3.2中文文档(chm格式)

    1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. ...

    突破传统,无线物联网式便携式的环境质量检测仪-电路方案

    天气预报或者是气象台给我们提供的信息不能实时实地地反映我们身边的环境状况,很多时候不能满足人们的需求,因此我们设计了一款无线物联网式便携式的环境质量检测仪,可以使人们更好地了解到身边的环境质量,以便于...

Global site tag (gtag.js) - Google Analytics