首页 文章 精选 留言 我的

精选列表

搜索[优化],共10000篇文章
优秀的个人博客,低调大师

Android官方开发文档Training系列课程中文版:电池续航时间优化之按需开启广播接收器

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/manifest-receivers.html 监测设备状态变化最简单的实现方式就是为每种状态都创建一个广播接收器,然后只需在相应的广播接收器内依据当前的设备状态重新执行各自的任务即可。 这种方式的不好之处就在于每次广播接收器被触发后,APP都会唤醒设备。 一种比较好的解决方案就是在运行时关闭或开启广播接收器。这样也可以使在清单文件中声明的广播接收器按需触发。 动态开启广播接收器 我们可以通过PackageManager将清单文件中声明过的任何组件切换到开启\关闭状态,其中也包括你将要开启或者关闭的广播接收器: ComponentName receiver = new ComponentName(context, myReceiver.class); PackageManager pm = context.getPackageManager(); pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP) 通过使用这种方法,如果发现网络连接已经断开,那么就可以关闭所有的相关广播接收器,除了监听连接变化的广播接收器之外。反之,一旦连接到网络,那么则应当停止网络变化的监听:只需要在执行网络任务之前,检查一下是否有网络连接即可。 你也可以使用这种方式推迟那种需要超大带宽的网络任务。只需要监听一下网络连接的变化即可,一旦连接到Wi-Fi,那则可以开始进行网络下载。

优秀的个人博客,低调大师

Android官方开发文档Training系列课程中文版:电池续航时间优化之检查、检测网络连接状态

原文地址:http://android.xsoftlab.net/training/monitoring-device-state/connectivity-monitoring.html 通常会有一些后台服务需要连接到网络来更新数据。但是如果没有连接到互联网,或者由于网络太慢而不能完成更新,那么为什么不在连接到网络后或在状况良好时再做这些工作呢? 你可以使用ConnectivityManager来检查是否已经连接到互联网,如果连接上了,还可以查询当前的网络连接类型。 检测是否联网 如果没有连接到网络,那么就没必要做基于网络的更新了。下面的代码演示了如何通过ConnectivityManager来检查当前的设备是否连接到了网络。 ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); 检测当前的网络连接类型 有时可能需要检查当前的网络连接类型。 移动设备的网络可能是蜂窝数据、WiMAX、Wi-Fi或以太网络提供。可以通过查询获知当前的网络连接类型,并基于当前的可用带宽来变更应用的刷新频率。 boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI; 移动数据所花费的成本要明显的高于Wi-Fi,所以在大多数情况下,当处于移动数据连接时,应当降低更新频率。类似的,较大文件的下载也应当暂停,直到连接到Wi-Fi网络后再继续下载。 因为会中断某些网络任务,所以监听网络状况变化这一点就变得尤为重要了:以便可以在良好的网络状况下恢复任务。 监听网络连接的变化 当网络状况发生变化时,ConnectivityManager会广播一个CONNECTIVITY_ACTION (“android.net.conn.CONNECTIVITY_CHANGE”)的消息。你可以在清单文件中注册一个专门用于监听此消息的广播接收器,以便恢复或暂停后台网络任务。 <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> 由于设备的网络连接会时常发生变化,所以该广播接收器会在每次切换到移动数据或者Wi-Fi情况下会被触发。因此,最好是为了恢复更新或者下载才用此种方法。通常的做法是,在开始任务之前检查一下网络的连接状况,如果网络不允许,那么使用该方法以便恢复。 这项方法需要动态开启广播接收器,具体的讲解会在下节课描述。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册