0

当设备插入电源时,我的应用程序工作正常,而在设备拔出时(有时)它会失败。我认为负责此问题的代码如下:

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

非常感谢您的任何评论。

4

1 回答 1

0

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

是的。

wl.release() 是否会立即释放 PARTIAL_WAKE_LOCK

是的。

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

这取决于其他可能持有的WakeLock.

于 2014-01-17T15:52:15.410 回答