2. 特征
3. 备注
II. Job Scheduler:建议网络相关任务放到Job Scheduler。 系统重启以后,任务会依然保留在Job Scheduler当中。 只有在Api21或以上的系统支持 1. 优势
2. 明确的指定特定场景下执行(JobInfo):由于是将多个任务打包在一个场景下执行,因此执行有略微的延后;并且有期限,如果在期限内还没有满足特定情况,系统会将这些任务加入队列,并且随后会进行执行。
3. 接口类型boolean onStartJob(JobParams params) { // 开始执行 // 注意这个方法是在主线程执行的,如果是耗时操作请抛到独立线程中 // jobFinished(JobParameters params) // 在完成任务并且决定是否还需要定时执行更多任务 // return 是否是在独立现在还有事务要执行 } void onStopJob(){ // 用于清理数据,在结束任务后被回调。 } III. GCMGCM Netwrok Manager实际上在 Api 21 或以上也是使用了 Job Scheduler,在此之前的版本使用的是Google Play Service中实现Job Scheduler的功能。 在 GCMNetworkManager 中有很多利于省点的规则。 1. 接口类型
触发场景与JobInfo中的一样。 IV. Sync AdapterTransferring Data Using Sync Adapters
同步服务端与本地设备中的数据。 1. 特征
2. 备注
2. 在一定的场景下触发同步尽可能的打包所有需要同步的任务在一个周期中执行,以此来进行尽可能的节省手机电量。
V. Doze ModeDeep Doze ModeAPI 23中直接称其为Doze Mode。 无论Target SDK是多少,只要设备是Android API 23或以上会启用该模式。 1. 特征
通过移动窗口打包任务请求,并且间隔时间会越来越久。 2. 进入条件会同时满足以下情况过后一段时间(大约30分钟)以后生效:
退出条件是,进入条件中任意条件状态发生变化。 3. 在两个处理窗口之间的手机状态
Light Doze ModeAPI 24 或以上会启用该模式 1. 特征
2. 进入条件会同事满足以下情况后一段时间(大约几分钟)以后生效:
或者在以下的条件:
3. 退出条件
4. 在两个处理窗口之间的手机状态
中断/避开Doze以下所有情况,Google官方都建议不在特殊情景,不要去使用,由于中断了省电的规则。 1. AlarmManager
2. FCM/GCM(Firebase Cloud Messaging,旧版中称为Google Cloud Messaging(GCM))。 FCM/GCM中高优先级的任务配置中( 3. 白名单
白名单的请求方式:
4. 特殊情况前台服务(foreground-service)将不会受到Doze模式影响。 Doze模式测试Google官方提供了一些adb命令用于测试Doze模式,而非需要通过等待来进入Doze模式的。 1. 进入Doze模式
退出Doze模式,让手机恢复正常需要复位充电模式: 2. 其他指令
在Android Nougat Developer Preview 4中,Doze模式的状态周期是: Light: ACTIVE -> IDLE -> IDLE_MAINTENANCE -> OVERRIDE Deep: ACTIVE -> IDLE_PENDING -> SENSING -> LOCATING -> IDLE -> IDLE_MAINTENANCE © 2012 - 2016, Jacksgong(blog.dreamtobe.cn). Licensed under the Creative Commons Attribution-NonCommercial 3.0 license (This license lets others remix, tweak, and build upon a work non-commercially, and although their new works must also acknowledge the original author and be non-commercial, they don’t have to license their derivative works on the same terms). http://creativecommons.org/licenses/by-nc/3.0/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|