android settings---------BrightnessPreference.java(亮度设置)
来源:互联网 发布:win10 telnet 端口23 编辑:程序博客网 时间:2024/06/06 00:58
1,信号流程:
BrightnessPreference ---->onBindDialogView(getBrightness)---->showDialog---->onPreferenceTreeClick---->onProgressChanged(若有变化才会进来)(setBrightness)----->onDialogClosed---->ContentObserver-mBrightnessObserver----->onBrightnessChanged(getBrightness).
2,相关知识点:
ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理
* 观察特定Uri的步骤如下:
* 1、 创建我们特定的ContentObserver派生类,必须重载父类构造方法,必须重载onChange()方法去处理回调后的功能实现
* 2、 利用context.getContentResolover()获得ContentResolove对象,接着调用registerContentObserver()方法去注册内容观察者
* 3、 由于ContentObserver的生命周期不同步于Activity和Service等,因此,在不需要时,需要手动的调用
unregisterContentObserver()去取消注册。
*
* 总结: 使用ContentObserver的情况主要有一下两者情况:
1、需要频繁检测的数据库或者某个数据是否发生改变,如果使用线程去操作,很不经济而且很耗时 ;
2、在用户不知晓的情况下对数据库做一些事件,比如:悄悄发送信息、拒绝接受短信黑名单等;
*public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
* 功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。
* 参数:uri 需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)
* notifyForDescendents 为false 表示精确匹配,即只匹配该Uri
为true 表示可以同时匹配其派生的Uri
* observer ContentObserver的派生类实例
*
*
* public final void unregisterContentObserver(ContentObserver observer)
* 功能:取消对给定Uri的观察
参数: observer ContentObserver的派生类实例
3,public void onProgressChanged(SeekBar seekBar, int progress,boolean fromTouch)----------------------手动模式下,通过进度条控件设置亮度;
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)---------------------选中自动或手动调整亮度;
private void setBrightness(int brightness)-------------这是设置亮度!它通过调用PowerManager(framework\base\core\java\android\os\PowerManager.java)及PowerManagerService(framework\base\service\java\com\android\server\PowerManagerService.java)的接口 来调整高度.PowerManagerService中定义的mButtonLight和mKeyboardLight都是键盘灯,具体使用哪一个,要看底层的平台厂商使用 public void setBacklightBrightness(int brightness);
(framework\base\service\java\com\android\server\LightsService.java)
(framework\base\services\jni\com_android_server_LightsService.cpp)
- android settings---------BrightnessPreference.java(亮度设置)
- android settings---------Settings.java
- android settings---------WallpaperTypeSettings.java(壁纸设置)
- Android 设置亮度
- android 设置屏幕亮度
- android设置屏幕亮度
- Android 设置屏幕亮度
- 设置android的亮度
- Android 设置屏幕亮度
- Android 设置系统亮度
- android 系统亮度设置
- Android设置屏幕亮度
- Android 设置屏幕亮度
- android 屏幕亮度设置
- Android设置系统亮度
- Android设置屏幕亮度
- Android Settings 声音设置
- Android Android屏幕亮度设置
- 异或的巧妙应用
- 利用iframe实现图片跨域上传
- oracle10g 常用命令
- apache负载均衡和tomcat6集群和session复制
- js 获取浏览器高度和宽度值(多浏览器)
- android settings---------BrightnessPreference.java(亮度设置)
- ResultSet相关ResultSetMetaData详细
- STK 简介
- sql 语句大全(二)
- spring 的单例模式
- oracle 部分常用操作
- ping与traceroute的进程标识方法
- 微软高管:cookies基本安全
- Android中图片占用内存的计算