赞
踩
1.1 目的
为了提升用户的充电速度的体验
1.2 之前存在的问题
首先,我们知道,在手机充电的过程中或者在电量大于90%,系统会发送ACTION_CHARGING广播,对于第三方应用或者系统应用来说,它们接收到这个广播后会做很多比较好电的工作。我们想象一个场景,用户手机没多少电了,他们想快速充一下电后立马用,比如说他们希望电量增加20%后立马用起来,但是对于android Q之前的系统而言,当你手机充电后,系统发送ACTION_CHARGING广播,系统中所有应用收到广播后立马去做比较耗电的工作。那么,充电速度肯定会受到影响,用户等待的时间会比较长。
1.3 解决方案
把ACTION_CHARGING延迟发送,默认延迟15min钟。详细信息如下:
core/java/com/android/internal/os/BatteryStatsImpl.java::setBatteryStateLocked
Android Q之前:的逻辑是只要当前电量大于上一次电量,那么就会setChargingLocked(true),进而触发:ACTION_CHARGING
Android Q上:这个逻辑被删除,首先判断这个ACTION_CHARGING有没有被延迟过,如果没有那么,就会post一个延迟消息出去,默认延迟15min,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。