电源管理器和PARTIAL_WAKE_LOCK



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

    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还是设备保持运行模式一段时间?

非常感谢您的任何评论。

我的问题是,由于在拍摄

照片之前可能会调用wl.release,因此设备在拍摄照片之前是否存在返回待机模式的风险?

是的。

wl.release() 会立即释放PARTIAL_WAKE_LOCK

吗?

是的。

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

这取决于还有什么可能持有WakeLock.

最新更新