【发布时间】:2014-06-19 23:41:25
【问题描述】:
我的应用正在使用相机。我有一个CameraActivity 类和CameraFragment 类,
CameraFragment 负责释放相机:
@Override
public void onPause() {
super.onPause();
if (mCamera != null) {
mCamera.release();
mCamera = null;
}
}
我的应用在拍照时崩溃了。由于某种原因,相机没有被释放。现在我无法获得相机对象!此外,Android 相机应用程序无法使用错误“无法连接到相机”
现在我知道相机是一个单例对象,一次只有一个应用程序可以获取它。 我不明白为什么 onPause 没有运行,我怎样才能更好地保护相机实例?
另外,如果发生这种情况,我该如何强制释放相机对象?这是个好主意吗?
遗憾的是,我不知道应用程序最初崩溃的原因。
感谢您的帮助。
罗伊
【问题讨论】:
-
好吧,我猜 onPause 没有运行是因为它崩溃了。我的猜测是当您的应用崩溃时,相机对象被释放。
-
相机对象没有被释放,这是主要问题(和奇怪的部分)。相机对象仍然被捕获。释放相机对象的唯一方法是重启设备
-
你是对的,这可能出于某种原因发生。 This 应该有帮助。
-
谢谢!使用 Thread.setDefaultUncaughtExceptionHandler,希望它能工作
-
这是一个非常有效的问题 - 也面临同样的问题......