我用闹钟定时拍照。我使用广播接收器如下:
@Override
public void onReceive(Context context, Intent intent)
{
Log.d(TAG, "Capturing pic");
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CAPPIC");
wl.acquire();
capturePicture();
wl.release();
}
capturePicture()
通话然后Camera.takePicture(...)
结束。最后,如您所见,wl.release()
被调用。
现在,问题是在我的情况下,回调takePicture
非常耗时。事实上,它会对刚刚拍摄的照片进行一些操作,在我的设备上可能需要长达 5 秒的时间。
我的问题是,由于wl.release()
在 takePicture 回调中的计算密集型任务正在运行时被调用,是否有任何副作用?也就是说,假设设备处于待机模式。警报开始 --> 唤醒锁被激活 --> 图片被拍摄和操作,但在计算唤醒锁被释放的同时......它是安全的还是存在设备在例程进入之前返回其待机模式的风险takePicture 回调结束?