【Android 10】 BatteryController

学习了一下电池的相关模式,也就是它的观察者模式,先附上图

图应该挺清晰的,BatteryControllerImpl就是被观察者,BatteryControllerImpl重写了CallbackController的两个方法用于添加或移除观察者。

java 复制代码
    void addCallback(T listener);
    void removeCallback(T listener);

BatteryStateChangeCallback就是抽象观察者,它是BatteryController的内部接口,里面有两个方法,看方法名字就可以知道一个是监听level改变的,也就是电量变化,onPowerSaveChanged方法就是监听目前电池省电模式有没有改变。

java 复制代码
    /**
     * A listener that will be notified whenever a change in battery level or power save mode has
     * occurred.
     */
    interface BatteryStateChangeCallback {

        default void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
        }

        default void onPowerSaveChanged(boolean isPowerSave) {
        }
    }

想要监听电池level变化或者省电模式变化就实现这个接口就行。

相关推荐
Xzaveir12 小时前
不要用一个状态表示“号码已认证”:企业号码身份的四域模型
android·人工智能
(Charon)13 小时前
【C++】手写 MySQL 连接池(二):同步连接的获取、加锁与释放
android
zhangjin112014 小时前
AOSP下载
android
Mico1815 小时前
MySQL 8.0.35 GTID 主从复制搭建-基于GITD
android·mysql·adb
YXL1111YXL17 小时前
LeakCanary 源码解析检测泄露工作机制(一)
android·leakcanary
且随疾风前行.18 小时前
Android Binder 驱动 - 内核驱动层源码初探
android·网络·binder
额恩6619 小时前
AI 智能体从零搭建实战教程——扣子
android·rxjava·coze
hunterandroid19 小时前
前台服务适配与线上排查:通知权限、启动限制和任务保活
android·前端
帅次19 小时前
Android 高级工程师面试:Flutter 渲染与性能 近1年高频追问 20 题
android·flutter·面试·渲染·性能
糖果店的幽灵20 小时前
【langgraph 从入门到精通graphApi 篇】Command 与动态流程控制
android·java·数据库·人工智能·langgraph