Androidのドキュメント(Android Cameraのドキュメントリンク)で、onPause()アクティビティコールバックでCameraオブジェクト(およびMediaRecorder)をリリースすることが推奨されている理由がわからないため、何かが足りないようです。その時点でアクティビティがまだ表示されていて、Cameraがプレビューを実行している可能性があるのに、アクティビティがすでに非表示になっているのに、なぜCameraオブジェクトがonStop()ではなくonPause()で解放されるのでしょうか。MediaRecorderオブジェクトをonPause()で停止できることは理解していますが、Camera自体は私には意味がありません。ここで何が欠けていますか?Androidドキュメントのコードの一部を以下に示します([カメラのリリース]見出しの下にあります)。
@Override
protected void onPause() {
super.onPause();
releaseMediaRecorder(); // if you are using MediaRecorder, release it first
releaseCamera(); // release the camera immediately on pause event
}
private void releaseMediaRecorder(){
if (mMediaRecorder != null) {
mMediaRecorder.reset(); // clear recorder configuration
mMediaRecorder.release(); // release the recorder object
mMediaRecorder = null;
mCamera.lock(); // lock camera for later use
}
}