我使用的是Camera
,我在活动open
中调用了onCreate
方法。当活动被销毁时,我释放Camera
。但是,活动中的片段可能正在使用Camera
(例如,使闪烁重复闪烁),因此当方向从纵向更改为横向时,例如,Camera
被释放(因为活动被销毁)并且引用设置为null,导致从片段中抛出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();
}
答案 0 :(得分:0)
试试这个android:configChanges="keyboardHidden|orientation"
对于api 13或更高版本android:configChanges="keyboardHidden|orientation|screenSize"
从api 13开始,当设备在纵向和横向模式之间切换时,屏幕尺寸也会发生变化
因此,这种方式不会在方向更改期间销毁您的活动