1
我正在使用Camera
,並且我在其中調用onCreate
中的open
方法。當活動被破壞時,我釋放Camera
。但是,活動中的片段可能正在使用Camera
(例如,使閃光燈重複閃爍),因此,例如,當方向從縱向更改爲橫向時,會釋放Camera
(因爲活動已被銷燬),並且參考被設置爲空,導致從片段拋出NPE。如何在方向更改期間保留對Camera
的引用(以便閃光燈保持閃爍)和在活動被破壞時(例如,當用戶單擊後退按鈕時)釋放Camera
?在方向更改期間保留引用
public static Camera camera = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
if (camera == null) {
camera = Camera.open();
if (camera == null) {
Log.e(LOG_TAG, "Unable to get back-facing camera.");
finish();
}
}
// ..
}
@Override
protected void onDestroy() {
if (camera != null) {
camera.release();
camera = null;
}
super.onDestroy();
}
這個問題的關鍵是,你告訴android你將在你的活動中處理這些變化,並且不需要實現默認t行爲 – BlackBeard