【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage

【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage

ID:34081860

大小:317.75 KB

页数:11页

时间:2019-03-03

【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage_第1页
【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage_第2页
【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage_第3页
【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage_第4页
【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage_第5页
资源描述:

《【android开发wiki】进阶篇performing network operations(二):管理网络情况—managing network usage》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、eoe移动开发者社区http://www.eoe.cn/原文链接:http://docs.eoeandroid.com/training/basics/network-ops/managing.html这节课讲述如何在网络资源使用的基础上写出拥有细粒度控制的程序,如果你的程序要执行大量的网络操作,你应该提供用户设置来允许用户控制你应用程序数据的习惯。比如你的程序多久会进行数据同步,是否只有在拥有Wi-Fi的情况下才执行上传和下载操作,是否使用数据漫游等等。将这些控制变量提供给他们,当用户接近自己

2、的(网络流量)限制时,就不太可能禁用你应用程序对后台数据的访问通道。因为他们可以精确的控制你的应用程序使用多少数据。对于怎样写一个应用能够最大限度的减少下载和网络连接对电池寿命的影响的一般准则。详见优化电池寿命和在不耗尽电池的情况下传输数据检查设备网络连接CheckaDevice'sNetworkConnection一个设备可以有不同类型的网络连接,这节课主要关注于使用Wi-Fi或者移动网络连接。对于可能存在的网络连接类型列表,详见ConnectivityManager类Wi-Fi通常速度更快,

3、此外,移动数据通常是按量计费,因此比较贵。所以应用程序的一般策略是只有在Wi-Fi可用的情况下才会获取大量数据。在你执行网络操作之前,最好先检查一下网络连接状态。这样可以避免你的应用在不经意间操作不应该操作的事务。如果网络连接不可用,程序应该提供良好的用户回应。检查网络连接一般使用以下类:oConnectivityManager:响应网络连接状态查询,同时能在网络连接状态发生改变时通知程序。oNetworkInfo:描述给定类型的网络接口状态(无论是移动网络还是Wi-Fi)以下代码片段测试了

4、Wi-Fi和移动网络连接,它决定了这些网络接口是否可用(即网络连接是否存在)和/或是否已经连接网络(即网络连接存在以及是否有可能建立socket通道并传输数据):1.privatestaticfinalStringDEBUG_TAG="NetworkStatusExample";2....3.ConnectivityManagerconnMgr=(ConnectivityManager)4.getSystemService(Context.CONNECTIVITY_SERVICE);5.Netw

5、orkInfonetworkInfo=connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);eoe移动开发者社区http://www.eoe.cn/6.booleanisWifiConn=networkInfo.isConnected();7.networkInfo=connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);8.booleanisMobileConn=networkInfo

6、.isConnected();9.Log.d(DEBUG_TAG,"Wificonnected:"+isWifiConn);10.Log.d(DEBUG_TAG,"Mobileconnected:"+isMobileConn);复制代码注意:你不应该立足于当前网络是否可用(做什么操作),而需要在执行网络操作之前检查isConnectioned()(看该方法返回是否已经网络连接成功了),在连接成功了之后再执行操作(因为有可能你的移动网络不够稳定,手机处于飞行模式,限制后台数据等状态;译者注:在这种

7、情况下,你可能会得到当前网络可用,但是无法连接的情况;)更简洁的检查网络接口是否可用的方式如下:getActiveNetworkInfo()方法返回一个NetworkInfo实例,这个实例表示的是系统能够找到并连接的第一个网络接口。如果网络接口是可以连接的,但是getNetworkInfo返回的是null(这表示当前网络连接无效)1.publicbooleanisOnline(){2.ConnectivityManagerconnMgr=(ConnectivityManager)3.getSys

8、temService(Context.CONNECTIVITY_SERVICE);4.NetworkInfonetworkInfo=connMgr.getActiveNetworkInfo();5.return(networkInfo!=null&&networkInfo.isConnected());6.}复制代码你也可以使用NetworkInfo.DetailedState查询更多细粒度的状态,但是这个很少是必须的。管理网络运用ManageNetworkUsage你可以实现一个prefere

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。