我似乎錯過了一些東西,因爲我不明白爲什麼在Android文檔中(Android Camera doc. link)建議在onPause()Activity回調中釋放Camera對象(以及MediaRecorder)?那時活動仍然可能可見,並且Camera可能正在運行預覽,那麼爲什麼當Activity已經隱藏時,Camera對象會在onPause()而不是onStop()中釋放?我明白MediaRecorder對象可以在onPause()中停止,但Camera本身對我來說沒有意義。我在這裏錯過了什麼?從Android文檔代碼塊低於(其下釋放相機標題):爲什麼Camera需要在onPause()而不是onstop()方法的Activity中釋放?
@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
}
}
對,我剛剛檢查了我的默認相機應用程序。在我的Android手機(Samsung Infuse)上,似乎當我開始錄製時,我按住「home」按鈕以進入「最近的應用程序。彈出窗口」,錄製不會停止。我是否認爲它在onStop中釋放攝像頭而不是在暫停?它也確實造成麻煩,因爲從「最近的應用程序窗口」時,我導航到我的應用程序。這要求相機我得到例外。 – spirytus 2012-08-07 04:38:36