【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变化或者省电模式变化就实现这个接口就行。

相关推荐
凌云志 !2 小时前
Android Studio 2024版,前进返回按钮丢失解决
android·ide·android studio
tangweiguo030519872 小时前
Android Kotlin 项目完整集成 Bugly 异常监控指南
android·kotlin
Yang-Never2 小时前
Kotlin -> lateinit 和 lazy 详解
android·开发语言·kotlin·android studio
MyhEhud3 小时前
kotlin 过滤 filter 函数的作用和使用场景
android·java·服务器·前端·kotlin
前后端杂货铺4 小时前
uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载
android·前端·ios·微信小程序·uni-app·canavas·二维码海报生成
tangweiguo030519875 小时前
Android Kotlin 项目集成 Firebase Cloud Messaging (FCM) 全攻略
android·kotlin
ii_best7 小时前
按键精灵安卓ios辅助工具脚本:实用的文件插件(lua开源)
android·开发语言·ios·lua
我命由我123457 小时前
Android 解绑服务问题:java.lang.IllegalArgumentException: Service not registered
android·java·开发语言·java-ee·安卓·android jetpack·android-studio
帅得不敢出门9 小时前
Android WebRTC回声消除
android·回声消除·aecm
zhangphil9 小时前
Android JIT编译:adb shell cmd package compile选项
android