首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Activity 螢幕旋轉時的生命週期與防重建設定

     編輯:程式設計疑難解答

現象:切換橫豎屏導致 Activity 閃退,無錯誤日誌。

預設行為

旋轉觸發 銷毀 → 重建 流程:

onPause → onStop → onDestroy → onCreate → onStart → onResume

若 onCreate 中有耗時操作、資源未正確釋放,或 onSaveInstanceState 未保存狀態,易導致崩潰或資料遺失。

解決方案

  1. Manifest 宣告處理配置變更(不重建):
    <activity android:name=".MainActivity"
        android:configChanges="orientation|screenSize|keyboardHidden">

    則只回呼 onConfigurationChanged(Configuration newConfig),需自行更新 UI。

  2. 正確實作狀態保存:
    @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");
    }
  3. 檢查崩潰真因:用 adb logcat 抓取完整堆疊,別信「沒報錯」。

參考資源

Activity 生命週期與配置變更詳細圖解

優先用方案 2 保持標準生命週期,僅在極簡頁面用方案 1。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved