[艺术探索]第一章Activity的生命周期和启动模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010369338/article/details/79570017
  1. 典型情况下的生命周期分析

    1). onCreate:Activity正在创建。生命周期的第一个方法,在这个方法中可以做一些初始化工作,比如调用setContentView去加载界面布局资源,初始化Activity所需数据等。

    2).onRestart: 表示Activity正在重新启动。当当前Activity从不可见状态到可见状态时,onRestart方法会被调用。这种情形一般是用户行为导致的。

    3).onStrat: 表示Activity正在被启动,这时Activity已经可见了,但是还没出现在前台,还无法和用户交互,这时候可以理解为Activity已经显示出来了,但是我们还看不到。

    4). onResume: 表示Activity已经可见了,并且出现在前台并开始活动。

    5). onPause: 表示Activity正在停止,正常情况下onStop马上会被调用。此时可以做一些存储数据,停止动画等工作,但是不能太耗时,因为会影响到新Activity的显示。onPause必须先执行完,新Activity onResume才会执行。

    6). onStop: 表示Activity即将停止,可以做一些稍微轻重量级的回收工作,同样不能耗时。

    7). onDestory: Activity即将被销毁,这是Activity生命周期中最后一个回调,在这里我们可以做一些回收工作和最终的资源释放。

  2. 异常情况下的生命周期分析
    1).资源相关的系统配置发生改变导致Activity被杀死并重新创建
    横竖屏切换:Activity被意外销毁并立刻重新创建新的Activity。

    `onSaveInstanceState();` 销毁时调用,用来存储数据。
    
    `onCreate();` 新建`Activity`时调用,如果是被重建则参数`Bundle`不为`null`,否则为`null`;
    
    `onRestoreInstanceState();` 重建`Activity`时调用,用来恢复数据,此方法一经调用则说明参数`Bundle`不为`null`;
    

onSaveInstanceState();onRestoreInstanceState();方法中系统自动为我们做了一定的恢复动作,当Activity在异常情况下需要重建时,系统会默认为我们保存当前Activity的视图结构,并且在Activity重启后为我们恢复这些数据。比如文本框中用户输入的数据,ListView滚动的位置等,这些View相关的状态系统都能默认为我们恢复。(自定义View时想要做状态恢复则需要善用onSaveInstanceState();onRestoreInstanceState();方法

猜你喜欢

转载自blog.csdn.net/u010369338/article/details/79570017