当设备插入电源时,我的应用程序工作正常,而当设备拔出电源时,它会失败(时不时地)。我认为负责这个问题的代码片段如下:
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或设备会在一段时间内保持其运行模式?
非常感谢您的评论。
发布于 2014-01-17 23:52:15
我的问题是,是否存在设备在拍照前返回待机模式的风险,因为在拍照之前可能会调用wl.release?
是。
确实会立即释放wl.release() PARTIAL_WAKE_LOCK
是。
或设备会在运行模式下保持一段时间吗?
这取决于其他什么可能持有WakeLock。
https://stackoverflow.com/questions/21190067
复制相似问题