当设备插入电源时,我的应用程序工作正常,而在设备拔出时(有时)它会失败。我认为负责此问题的代码如下:
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "foo");
wl.acquire();
foo();
wl.release();
foo()
是一个调用 a 的函数Camera.takePicture()
,如您所知,它会导致需要几秒钟才能完成的并行任务。因此,wl.release()
实际上在尚未拍摄图片时调用。上述代码由一个闹钟执行,该闹钟将设备从其待机模式唤醒。我的问题是,由于在wl.release
拍照之前可能会被调用,因此设备是否存在在拍照之前返回待机模式的风险?是立即释放PARTIAL_WAKE_LOCKwl.release()
还是设备保持其运行模式一段时间?
非常感谢您的任何评论。