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