解决手机关闭屏幕线程挂起问题
2015-11-19 17:16
211 查看
最近在做一个关闭屏幕60分钟后自动下载的需求,整个模块已经竣工,测试发现在充电状态下没有任何问题可以直接下载,但是在非充电状态下自动下载失效了,这时首先要观察日志看看到底是什么情况,小插曲平时都是usb debug看日志,现在的状态是不插usb自然无法通过这个来看日志,还好android就是nb提供wifi连接adb命令来查看日志,前提是手机和pc必须在同一个局域网,具体命令如下:
1、setprop service.adb.tcp.port 5555
2、adb connect 192.168.253.2
3、adb logcat -s AbstractProcessor
言归正传,发现日志没有打印在关闭屏幕状态下,经google发现android系统在手机无操作的情况下,为了省电,一般会变暗,关闭屏幕。而系统的电源管理,主要由PowerManager 和PowerManager.WakerLock类进行控制。所以要想关闭屏幕下保证cpu是work的就要用到wakerlock
PowerManager和WakeLock的使用:
acquireWakeLock()方法中获取了 SCREEN_DIM_WAKE_LOCK锁,该锁使CPU保持运转,屏幕保持亮度(可以变灰)。releaseWakeLock()方法则是释放该锁。
所以最终的解决方案是在监听关闭屏幕广播处acquireWakeLock(),打开屏幕处releaseWakeLock()
,必须成对使用。
1、setprop service.adb.tcp.port 5555
2、adb connect 192.168.253.2
3、adb logcat -s AbstractProcessor
言归正传,发现日志没有打印在关闭屏幕状态下,经google发现android系统在手机无操作的情况下,为了省电,一般会变暗,关闭屏幕。而系统的电源管理,主要由PowerManager 和PowerManager.WakerLock类进行控制。所以要想关闭屏幕下保证cpu是work的就要用到wakerlock
PowerManager和WakeLock的使用:
所以最终的解决方案是在监听关闭屏幕广播处acquireWakeLock(),打开屏幕处releaseWakeLock()
,必须成对使用。
相关文章推荐
- 使用pull方式解析xml文件
- C++中for循环的5种语法,你可知道?
- STL Container和ATL智能包裹类的冲突
- JavaScript学习----初步
- UUID详解
- Kettle优化就这么多
- 猫猫学iOS之去除服务器返回数据中的html标签,去除指定字符串,替换字符串
- jquery $.proxy使用
- KVM vCPU创建过程
- Google Nexus5关于Android 6.0源码的同步,编译和烧写
- LightOJ 1021 Painful Base(状压DP)
- SQLite忽略大小写。
- 基于java中泛型的总结分析
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 如何看懂ORACLE执行计划
- co + Generator 写的迭代器 类似 async.whilst
- C#对象克隆介绍
- POPTEST 测试开发 免费培训课程报名
- 作为新手接触安卓遇到的问题~~还没完成~~~
- hihocoder-1048 状态压缩·二(状压DP)