現象:切換橫豎屏導致 Activity 閃退,無錯誤日誌。
旋轉觸發 銷毀 → 重建 流程:
onPause → onStop → onDestroy → onCreate → onStart → onResume
若 onCreate 中有耗時操作、資源未正確釋放,或 onSaveInstanceState 未保存狀態,易導致崩潰或資料遺失。
<activity android:name=".MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden">
則只回呼 onConfigurationChanged(Configuration newConfig),需自行更新 UI。
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("key", value);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String v = savedInstanceState.getString("key");
}
adb logcat 抓取完整堆疊,別信「沒報錯」。優先用方案 2 保持標準生命週期,僅在極簡頁面用方案 1。