PowerManager和PARTIAL_WAKE_LOCK

时间:2014-01-17 15:49:32

标签: android camera power-management powermanager

当设备插入电源时,我的应用程序正常工作,而当设备拔下插头时,我的应用程序失败(不时)。我认为负责此问题的代码如下:

    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "foo");
    wl.acquire();
foo();
    wl.release();

foo()是一个调用Camera.takePicture()的函数,正如您所知,这会导致并行任务需要几秒钟才能完成。因此,当图片尚未拍摄时,实际上会调用wl.release()。上述代码由警报执行,该警报将设备从待机模式唤醒。我的问题是,由于在拍摄照片之前可能会调用wl.release,因此设备在拍摄照片之前是否会返回待机状态? wl.release()是否会立即释放PARTIAL_WAKE_LOCK或设备是否仍处于运行模式一段时间?

非常感谢任何评论。

1 个答案:

答案 0 :(得分:0)

  

我的问题是,由于在拍摄照片之前可能会调用wl.release这一事实,设备在拍摄照片之前是否会返回待机状态?

  

wl.release()是否会立即释放PARTIAL_WAKE_LOCK

  

或设备保持运行模式一段时间?

这取决于可能持有WakeLock的其他内容。