android6.0功能添加,QC3.0
来源:互联网 发布:知错和秦昊 编辑:程序博客网 时间:2024/05/23 21:55
QC 功能添加
需求:当收到广播的时候,开始在n秒内监听某文件,如果当中的某个内容改变了,就弹出一个AlertDialog
当收到系统通知的时候 需要在plugged的基础上进行UEvent的监听,但是,经过观察发现,UEvent并不能直接在SystemUI部分进行监听,其他设置监听的地方都是在framework/base/servers/下边的类进行监听。
通过进一步的阅读源码,发现BatteryService居然是发出之前我们需要收到的广播的类,所以我就自己创建了一个Action,将action添加到Intent当中,UEvent监听到了数据变化就会发一个广播出去,如果PowerUI监听到了自定义的Action的话,就可以继续进行了, 但是事情并没有那么简单,由于并不能直接像之前PowerUI.onReceive一样使用plugged !=oldPlugged 一样来判断插拔(延迟问题)所以导致了Dialog的show和dismiss被反复调用了多次,导致在充电期间每隔几十秒都会重新弹出Dialog,这次就在PowerNotificationWarning里面改变了SystemDiaolog的置空时机并非在onDismiss方法内置空,而是在接受到了拔出充电线命令的时候置为null,这样就可以保证在插入期间只会弹出一次Dialog
这个项目由于之后客户更改了需求,所以第一次的需求总结如下
首先做一个总结,第一接收到系统通知的时候,我分别对plugged和oldPlugged的时候进行判断,其实,这两个判断完全可以合并成一个,并且在读取文件的时候我使用了多线程,主要利用内部类集成Thread的方法来实现,怎么想都太过于麻烦,但是确实没有什么便利的办法,还有就是AsyncTask,这个虽然简便,但是消耗资源更大,后来上网查了一下,有线程池可以使用,但是我在源码里面查了一下,SystemUI部分基本没有使用线程池,至少我没在SystemUI下有搜索到ExecutorService这个类的定义以及引用,最后还是放弃了多线程,直接在UI线程下读取文件.这次编写由于开始是自己写的,我对review之前和review之后的patch进行对比,发现的确代码整洁优雅了不少,还有要注意的一点就是,如果下回还有写代码的机会的话,一定要仿照google的代码写.的确能够规避大部分的问题.
- android6.0功能添加,QC3.0
- UP9616Q自带识别功能降压QC3.0车载快充芯片方案
- [RK3288][Android6.0] USB UVC Camera 功能支持的添加
- [RK3288][Android6.0] 调试笔记 --- Su添加密码登陆功能
- [RK3288][Android6.0] USB UVC Camera 功能支持的添加
- android6.0 固定屏幕功能
- android6.0 添加电量百分比
- android6.0之权限添加
- [Android6.0][RK3399] 电池系统(二)BQ IC 添加 DC 充电功能
- Android6.0 权限后编辑头像功能
- [android6.0]添加System Jar记录
- android6.0在状态栏添加一键截屏
- Android6.0 LK添加开机震动
- android6.0 状态栏添加图标 举例Location
- Android6.0的新权限,动态添加
- Android6.0添加桌面插件Widget
- Android6.0动态添加权限依旧失败
- targetSdkVersion 23以下添加Android6.0权限
- Top 16 Java 应用类 - 这些功能再也不用自己写了
- C++11: variadic template
- html页面中引入ionic.bundle.min.js正常,但是引入ionic.bundle.js报错Invalid regular expression
- iOS-swift-动画 简单基础的动画摘要-1
- spatialhadoop2.3源码阅读(七) Sampler类
- android6.0功能添加,QC3.0
- 气体放电管设计及使用
- npm、spm、bower 这三个包管理器的异同
- RTSP 协议 过程解析
- 手机对话中的语音处理(二)
- 【QTP】打开多个页面,多浏览器之间操作
- 【Struts2】(11)异常处理和标签
- B/S项目结束,又是一个新的开始
- Android中如何实现textView图文混排