【问题标题】:When to release camera properly when using multiple activities?使用多个活动时何时正确释放相机?
【发布时间】:2013-11-11 12:53:37
【问题描述】:
在我的 android 项目中,我使用相机实例拍照。拍照后,我将开始一项新活动。现在我在 onPause 中释放相机并在 onResume 中重新创建它。这工作正常。现在我的问题是;从其他活动返回相机活动时,将需要“很长时间”。我知道这是因为我重新创建了相机。
我相信这个问题可以通过在用户真正关闭应用程序之前不释放相机来解决。
所以我的问题是:
我什么时候才能以理智的方式释放我的相机,和/或这是如何完成的?
【问题讨论】:
标签:
android
android-activity
android-camera
【解决方案1】:
您必须在打开相机的类的onPause 方法上释放您的Camera 实例。因为,举个例子:
让你在Activity中打开Camera,比如说Activity1。现在您导航到其他Activity,比如说Activity2。现在由于任何原因,您的应用程序崩溃了。现在您无法释放您的Camera 实例,也无法创建新实例。
或
用户导航到Activity2 并按下主页按钮,然后按下Force Stops 来自Settings 的应用程序。在这种情况下,Camera 实例也无法释放。
以上两种情况都没有调用Activity1的方法。
所以你应该在onPause of Activity1 中释放你的Camera 对象
希望我清楚。
【解决方案2】:
根据安卓Camera reference:
重要:调用 release() 释放相机供其他人使用
应用程序。应用程序应立即释放相机
onPause() (并在 onResume() 中重新打开()它)。