虽然Android的每个系统版本都在手机电量方面努力进行优化,不过一直没能解决后台服务泛滥、手机电量消耗过快的问题。于是在Androi6.0系统中,谷歌加入了一个全新的Doze模式。从而可以极大幅度地延长电池的使用寿命。本小节中我们就来了解一下这个模式,并且掌握一些编程时的注意事项。

首先看一下到底什么是Doze模式。当用户的设备是Android6.0或以上系统时,如果该设备未插接电元,处于禁止状态(Android7.0中删除了这一条),且屏幕关闭了一段时间之后,就会进入到Doze模式。在Doze模式下,系统会对CPU、网络、Alarm等活动进行限制,从而延长电池的使用寿命。

当然,系统并不会一直处于Doze模式,而是会间歇性退出Donze模式一段时间,在这段时间中,应用就可以去完成他们的同步操作、Alarm任务,等等。如下所示:

可以看到,随着设备进入Donze模式的时间延长,间歇性地退出Doze模式的事件间隔也会越长。因为如果设备长时间不适用的话,是没必要平法退出Doze模式来执行同步操作的,Android在这些细节上的把控使得电池寿命进一步得到延长。

接下来我们具体看一看在Doze模式下有哪些功能会受到限制吧。

1 网络访问被禁止

2 系统忽略唤醒CPU或者屏幕操作。

3 系统不再执行WIFI扫描。

4 系统不再执行同步服务

5 Alarm任务将会在下次退出Doze模式的时候执行

注意其中最后一条,也就是说,在Donze模式下,我们的Alarm任务将会变得不准时。当然,这在大多数情况下是合理的,因为只有当用户长时间不适用手机的时候才会进入Done模式,这在大多数情况下都是合理的,因此只有当用户长时间不使用手机的时候菜户进入Done模式,通常在这种情况下对Alarm任务的准时性要求并额米有那么高。

不过,如果你真的有非常特殊的要求,要求Alarm任务即使在Doze模式下也必须正常执行,Android还是提供了解决方案。调用AlarmManager的setAndllowWhileIdle()或者setExactAndllowWhileIdle()方法就能让任务即使在Done模式下也能正常执行了,这两个方法之间的区别和set()、setExact()方法之间的区别是一样的。

android瞌睡模式,13.5.2 Done模式(瞌睡)相关推荐

  1. android百度地图标方向,Android百度地图之方向感应和模式更改

    本文实例为大家分享了Android百度地图之方向感应和模式更改,供大家参考,具体内容如下 目标效果: 菜单中设置几种模式,点击可查看不同的地图形式,这里随便截几张图. 1.首先要去百度地图网站 htt ...

  2. Android 功耗优化(4)---android 7.0低电耗Doze模式

    android 7.0低电耗Doze模式 从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能,可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命. 低 ...

  3. Android开发笔记(九十)建造者模式

    基本概念 建造者模式是一种常用的设计模式,它用于把类的表现和构建分离开来.引入建造者模式的缘由,且看博主下面细细道来. 公开属性 一般我们定义一个类的属性,如果属性是公开的,那可以直接对该类的属性赋值 ...

  4. android p 预览版壁纸,Android P预览版加入黑暗模式主题 iOS啥时候才能有呢?

    Android P预览版加入黑暗模式主题 iOS啥时候才能有呢? 2018年07月03日 13:12作者:王瑞编辑:王瑞文章出处:泡泡网原创 分享 据外媒报道,Android P最新预览版中加入了纯黑 ...

  5. 【Android取证篇】Android设备USB调试打开方式(开发者模式)

    [Android取证篇]Android设备USB调试打开方式(开发者模式) Android各个版本系统手机开启"USB调试"的入口不全相同,仅供参考-[蘇小沐] 1.[Androi ...

  6. Android入门:Activity四种启动模式

    2019独角兽企业重金招聘Python工程师标准>>> 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在Android Manifest.xml中的标签的and ...

  7. Android Activity的launchMode四种启动模式备忘

    Android Activity的launchMode四种启动模式备忘 Android的Activity的启动模式有四种,在AndroidManifest.xml通过配置Activity的androi ...

  8. android 工厂方法模式应用场景,Android设计模式(四)- 工厂方法模式

    目录 定义 使用场景 UML 模式1 模式2 模式3 简单工厂模式静态工厂模式 简单实现 Android源码中的工厂方法 总结 优点 缺点 工厂方法模式也是创建型模式. 工厂模式根据抽象程度可以分为三 ...

  9. android 启动模式_安卓学习笔记之Android中Activity的4种启动模式

    根据Activity在任务栈中的调用方式不同,Activity的启动模式分为4种,分别是Standard.SingleTop.SingleTask以及SingleInstance.可以在Android ...

最新文章

  1. echarts中graphic_使用Pyecharts进行奥运会可视化分析!
  2. 516%增长:微博如何熬过七年之痒?
  3. 《软件技术基础》实验指导 实验五
  4. 计算机网络核心知识(中)
  5. 基于Bresenham和DDA算法画线段
  6. AI算法的进步超越了摩尔定律!
  7. go struct结构
  8. Atom飞行手册翻译: 2.5 查找和替换
  9. SpringBoot : BeanFactory
  10. 2 机器学习基本概念
  11. gnss到底是什么呢
  12. 【温故而知新】计算机408之计算机网络速记
  13. RxSwift学习(三)— Observer、Binder、Subjects、BehaviorRelay
  14. STM32存储器 — 2STM32存储器知识的相关应用(IAP、Bit Banding)
  15. 肠道重要菌属——颤螺菌属 (Oscillospira),它为什么如此神秘?
  16. jwt token使用autho0-jwt框架使用(二)
  17. 升级云服务器的python3,导致宝塔面板打不开
  18. 一文读懂新华三引领Wi-Fi 6市场的秘密
  19. INF442 Amphi 6: Supervised learning and k-NN predictors | Genericity
  20. 张艾迪(创始人):期待改变世界的力量

热门文章

  1. 你懂得咋选择彩光模块吗?其实也没那么难!
  2. Tomcat设置允许跨域访问
  3. npm是干什么的?为什么要使用npm?(适合不太了解 npm 的新人阅读)
  4. 盘面,磁道,柱面,扇区
  5. YoloV8改进策略:将DCN v1与v2运用到YoloV8中,化身成上分小黑子
  6. HTML店铺,店铺排行.html
  7. xmlhttp.responsetext 获取servlet的输出值比较出现问题
  8. 113 错误 mysql_mysql添加,授权,删除用户以及连接数据库Can't connect to MySQL server on '192.168.31.106' (113)错误排查...
  9. jdb2 mysql io_CentOS 6.4系统中jdb2进程占用io过高的解决方法
  10. linux 终端 mosh,使用Mosh来优化SSH连接