当设备插入电源时,我的应用程序正常工作,而当设备拔下插头时,我的应用程序失败(不时)。我认为负责此问题的代码如下:
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或设备是否仍处于运行模式一段时间?
非常感谢任何评论。
答案 0 :(得分:0)
我的问题是,由于在拍摄照片之前可能会调用wl.release这一事实,设备在拍摄照片之前是否会返回待机状态?
是
wl.release()是否会立即释放PARTIAL_WAKE_LOCK
是
或设备保持运行模式一段时间?
这取决于可能持有WakeLock
的其他内容。