【发布时间】:2013-06-23 12:10:57
【问题描述】:
我有一个使用设备相机的应用程序。
现在我只在正常流程中释放相机。
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
if(camera != null) {
camera.stopPreview();
camera.release();
}
}
因此,应用程序以意想不到的方式退出相机模式 - 即强制关闭(由于OutOfMemoryError) - 相机被锁定。释放它的唯一方法是重启设备。
申请开始后,我得到:
RuntimeException: Fail to connect to camera service
我怎么能确定,无论如何,那台相机已经被释放了?
【问题讨论】:
-
您是否尝试卸载您的应用程序?如果我没记错的话,这在过去对我有帮助。
-
这不是我问的。我需要确保在任何情况下都释放
Camera。无需卸载应用程序或重新启动设备。 -
我猜你需要使用
Thread.setDefaultUncaughtExceptionHandler()来安排对此类崩溃的控制,以便能够关闭相机。 -
是的,就可以了。或者,如果您正在使用 Bugsense - 让您的活动实现
com.bugsense.trace.ExceptionCallback并在lastBreath()中释放相机