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

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

GitHub地址:
GeoQuiz 第三章

1. Activity 的生命周期

Activity 生命周期

在设备运行中,设备配置(如屏幕方向、屏幕密度、屏幕尺寸、语言、键盘类型等)发生改变时,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 生命周期图示如下:

完整的 Activity 生命周期

2. Log 工具

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值