Kotlin_02_安卓开发之Activity的生命周期

Activity生命周期分为7个阶段。

每个阶段对应的方法,都是在阶段名称前加上on。比如,Create阶段对应的方法是onCreate。

生命周期

Create:创建阶段

该阶段界面不可见,所以不能在对应方法 onCreate 中进行界面处理方面的编程。比如,不能进行动画显示。在一个 Activity 生命周期中,该阶段只有一次,方法onCreate也只会执行一次。在方法onCreate中,通常进行初始化工作,使用setContentView加载布局,对一些控件和变量进行初始化等。除此之外的一些工作,都不宜在该方法中处理。

Start:启动阶段

该阶段界面已经构造完成,但是尚未进入前台,所以仍然无法看到界面,用户无法和Activity进行交互。在Create或Restart环节之后,都有可能进入到该环节。因为Restart可能有多次,所以Start阶段也有可能有多次。在方法onStart中,可以做一些初始化工作,效果和在onCreate中做初始化工作的效果是一样的,只是官方推荐在onCreate中进行初始化工作。在onCreate中能够做的工作,也可以在onStart中做,但是在onStart中做的工作不见得都适合在onCreate中做。比如,动画的初始化工作。

Resume:继续/重新开始阶段

该阶段Activity出现在前台,允许和用户进行交互。在onResume方法中,可以进行开启动画、打开独占设备的操作。

Pause:暂停阶段

该阶段 Activity 是可见的。当切换到其他 Activity 或退出 Activity时会进入该阶段。可以在 onPause 方法中执行一些轻量级的处理操作,比如资源释放、保存数据等。注意,一定是轻量级的工作,Android留给该阶段的时间最长是500ms,超时不能完成处理就会被强制关闭;如果时间过长,即使不超时也会影响用户体验,因为 onPause 方法执行不完,Activity就总是可见的,给用户的体验就是反应迟钝。

Stop:停止阶段

该阶段Activity不可见,但是尚未注销,仍在内存中。在该阶段也可以做一些资源释放工作。一旦Pause无法快速完成资源释放工作,可以留一部分工作在onStop中完成,这个阶段界面不可见,给用户的体验会稍好一些。但是,需要注意,该阶段不见得总有机会执行,当 onPause 中的任务比较耗时时,就有可能被强制终止。所以,一些非常关键的工作,还是要放在onPause中完成,在onStop中有可能得不到执行。

Destroy:注销阶段

从内存中清除。在 onDestroy 方法中,可以继续做一些资源释放工作,以及回收工作。

Restart:重新开始阶段

当切换回来时自动进入该阶段,该阶段Activity可见。可以从其他Activity切换回来,也可以是按Home键后进入到桌面,处理完其他事务后,单击该App切换回来。不管哪种操作,都会自动进入该阶段。一般不在onRestart中做工作。

你可能感兴趣的:(Kotlin_02_安卓开发之Activity的生命周期)