Android編程權(quán)威指南(第二版)學習筆記(三)—— 第3章 日志跟蹤理解 Activity 生命周期

本章主要討論了 Activity 的生命周期,用 Log 工具來觀察它,以及如何在設備配置改變時保存之前的狀態(tài)

GitHub地址:
GeoQuiz 第三章

1. Activity 的生命周期

在設備運行中,設備配置(如屏幕方向、屏幕密度、屏幕尺寸、語言、鍵盤類型等)發(fā)生改變時,Android 需要自動完成最佳匹配資源的調(diào)用, 某些時候(如屏幕旋轉(zhuǎn)時)它必須通過新建一個 Activity 來實現(xiàn),所以需要重新調(diào)用 onCreate() 方法,從而設備配置改變前對 Activity 的更改將消失。

如何在設備配置改變發(fā)生時保存數(shù)據(jù),在之后返回到改變前的狀態(tài)呢?

就是通過復寫 onSaveInstanceState() 方法保存需要保留的數(shù)據(jù),代碼如下:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Log.i(TAG, "onSaveInstanceState");
    outState.putInt(KEY_INDEX,mCurrentIndex);
}

然后在 onCreate() 方法中加入對 savedInstanceState 這個 Bundle 變量的非空判定然后獲取其中的數(shù)據(jù)對 Activity 的數(shù)據(jù)進行賦值。

if (savedInstanceState != null){
    mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, 0);
}

一個完整的包含暫存狀態(tài)的 Acitvity 生命周期圖示如下:

完整的 Activity 生命周期

2. Log 工具

使用 Log 方式跟蹤程序是一個比較好的習慣,而不是使用 System.out.println()


GitHub Page: kniost.github.io
簡書:http://www.itdecent.cn/u/723da691aa42

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容