java.lang.RuntimeException: Camera is being used after Camera.release() was called
錯誤就是上述這個錯誤,錯誤出現在Android相機開發中,我所實現的方法貼一下:
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (!isOpenCamera)
return;
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
mCamera.lock();
mCamera.release();
mCamera = null;
}
乍一看沒啥錯誤,但是這個錯誤會在不經意間蹦出來影響應用的運行,直接就AAR了.所以爲了解決這個錯誤,需要在camera調用setPreviewCallback之前加上一句代碼,加完代碼後的方法爲:
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (!isOpenCamera)
return;
holder.removeCallback(this);
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
mCamera.lock();
mCamera.release();
mCamera = null;
}
到此我的問題已經解決,但是我正在想爲什麼這麼做?