Android编程权威指南(第二版)学习笔记(三)—— 第3章 日志跟踪理解 Activity 生命周期

本章主要讨论了 Activity 的生命周期,用 Log 工具来观察它,以及如何在设备配置改变时保存之前的状态

GitHub地址:
GeoQuiz 第三章

1. Activity 的生命周期

Android编程权威指南(第二版)学习笔记(三)—— 第3章 日志跟踪理解 Activity 生命周期_第1张图片

在设备运行中,设备配置(如屏幕方向、屏幕密度、屏幕尺寸、语言、键盘类型等)发生改变时,Android 需要自动完成最佳匹配资源的调用, 某些时候(如屏幕旋转时)它必须通过新建一个 Activity 来实现,所以需要重新调用 onCreate() 方法,从而设备配置改变前对 Activity 的更改将消失。

如何在设备配置改变发生时保存数据,在之后返回到改变前的状态呢?

就是通过复写 onSaveInstanceState() 方法保存需要保留的数据,代码如下:

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

然后在 onCreate() 方法中加入对 savedInstanceState 这个 Bundle 变量的非空判定然后获取其中的数据对 Activity 的数据进行赋值。

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

一个完整的包含暂存状态的 Acitvity 生命周期图示如下:

Android编程权威指南(第二版)学习笔记(三)—— 第3章 日志跟踪理解 Activity 生命周期_第2张图片
完整的 Activity 生命周期

2. Log 工具

使用 Log 方式跟踪程序是一个比较好的习惯,而不是使用 System.out.println()


GitHub Page: kniost.github.io
:http://www.jianshu.com/u/723da691aa42

你可能感兴趣的:(Android编程权威指南(第二版)学习笔记(三)—— 第3章 日志跟踪理解 Activity 生命周期)