Android 休眠和唤醒(不会深度休眠状态)
来源:互联网 发布:淘宝联盟如何做推广 编辑:程序博客网 时间:2024/05/22 01:40
1.首先在android开发环境下来编译的。(这可能你的开发源码环境的接口不能使用,例如goToSleep(),之前试过这个方法在eclipse编译试了好几次都执行不了,也不报错,晕了好久,后面看源码,开发源码和google接口有所不一样,吸取教训)
2.这里控制是不让系统深度休眠,CPU继续运作:屏幕、键盘灯有不同影响。
获取WakeLock实例后通过acquire()获取相应的锁,然后进行其他业务逻辑的操作,最后使用release()释放(释放是必须的)。
关于int flags
PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯
FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
ACQUIRE_CAUSES_WAKEUP:正常唤醒锁实际上并不打开照明。
例如:
relaseWakeLock = this.localPowerManager.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, getClass()
.getCanonicalName());// 第一个参数为电源锁级别,第二个是日志tag
relaseWakeLock.acquire();
这里relaseWakeLock.acquire()如果不释放的话,CPU都是一直运转的,即使没插入USB的话,CPU还是继续运转。如果释放了,在下面调用唤醒和休眠时候,会深度休眠状态。
3.
public void onSensorChanged(SensorEvent event) {
float[] its = event.values;
Log.i(TAG, "onSensorChanged currentdata = " + its[0]);
if (its != null && event.sensor.getType() == Sensor.TYPE_PROXIMITY) {
if (its[0] == 0) {// 靠近 亮
Log.i(TAG, "onSensorChanged show = "+localPowerManager.isScreenOn());
if(!localPowerManager.isScreenOn()){
power.wakeUp(SystemClock.uptimeMillis());
}
} else {// 远离 灭
Log.i("MainActivity", "goTosleep");
if(localPowerManager.isScreenOn()){
Log.i("MainActivity", "goTosleep");
if(null != power){
power.goToSleep(SystemClock.uptimeMillis());
Log.i("MainActivity", "goTosleep");
}
}
}
}
}
这里使用wakeUp()唤醒和goToSleep()进行休眠状态。
- Android 休眠和唤醒(不会深度休眠状态)
- Android 休眠和唤醒命令
- android 休眠与唤醒
- Android 休眠与唤醒
- android 休眠与唤醒
- android 休眠唤醒
- Android休眠与唤醒
- Android休眠与唤醒
- android休眠唤醒死机
- linux&android休眠唤醒
- Android 自动休眠唤醒
- android休眠唤醒流程
- android休眠唤醒流程:
- Android休眠唤醒1
- Android休眠唤醒2
- Android休眠唤醒3
- 调试休眠和唤醒
- 休眠和唤醒
- 下载ftp文件
- poj1742 布尔值型 多重背包
- 225. Implement Stack using Queues
- ios 事件穿透的原因和解决方法
- 5-42 整型关键字的散列映射
- Android 休眠和唤醒(不会深度休眠状态)
- R 速学之篇一
- linux curl 发送get、post请求
- 字典树求子串hdu2846
- android中scroll中的listview高度重新计算
- Red and Black(DFS)
- 前端接口的数据结构
- UVa1594 Ducci Sequence Ducci序列(习题5-2)
- 【WebService】CXF拦截器的设置以及自定义CXF拦截器