Activity生命周期,英文名也叫activity_lifecycle。
Activity状态
每个Activity在其生命周期内可能会有哪几种状态吗?没错,一共有运行状态、暂停状态、停止状态和销毁状态这4种。
运行状态
当一个Activity位于返回栈的栈顶时,Activity就处于运行状态。系统最不愿意回收的就是处于运行状态的Activity,因为这会带来非常差的用户体验。
暂停状态
当一个Activity不再处于栈顶位置,但仍然可见时,Activity就进入了暂停状态。你可能会觉得,既然Activity已经不在栈顶了,怎么会可见呢?这是因为并不是每一个Activity都会占满整个屏幕,比如对话框形式的Activity只会占用屏幕中间的部分区域。处于暂停状态的Activity仍然是完全存活着的,系统也不愿意回收这种Activity(因为它还是可见的,回收可见的东西都会在用户体验方面有不好的影响),只有在内存极低的情况下,系统才会去考虑回收这种Activity。
停止状态
当一个Activity不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。系统仍然会为这种Activity保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的Activity有可能会被系统回收。
销毁状态
一个Activity从返回栈中移除后就变成了销毁状态。系统最倾向于回收处于这种状态的Activity,以保证手机的内存充足。
Activity生命周期(活动的生命周期)
在学习了有关活动编程的知识之后,现在来学习活动中的生命周期。只有完全理解了活动的生命周期,在今后的Android编程中才会更加得心应手,这也是面试Android开发类工作时的一个重要考点。为了让Android App在活动(Activity)生命周期的各个阶段之间导航转换,Activity类提供了6个核心回调方法:onCreate()、onStart()、onResume()、onPause()、onStop()和onDestroy()。当活动进入新状态时,系统会调用这些回调方法。
Activity类中定义了7个回调方法,这些称为我们系统的一个回调,又称为callback
。覆盖了Activity生命周期的每一个环节,下面就来一一介绍这7个回调方法的具体作用。
● (1)onCreate()。
这个方法你已经看到过很多次了,我们在每个Activity中都重写了这个方法,它会在Activity第一次被创建的时候调用。你应该在这个方法中完成Activity的初始化操作,比如加载布局、绑定事件等。
这个方法在每次活动最开始启动时都会运行,并且在每一个活动中只允许这个方法出现一次。
● (2)onStart()。
这个方法在Activity由不可见变为可见的时候调用。
当活动开始运行并转入不可运行时,这个方法开始运行,因为应用会为Activity进入前台并为支持交互做准备。
● (3)onResume()。
这个方法在Activity准备好和用户进行交互的时候调用。此时的Activity一定位于返回栈的栈顶,并且处于运行状态。
活动会在进入“已恢复”状态时来到前台,然后系统调用onResume()回调方法。这是应用与用户交互的状态。应用会一直保持这种状态,直到某些事件发生,让焦点远离应用。此类事件包括接到来电、用户导航到另一个活动或设备屏幕关闭。
● (4)onPause()。
这个方法在系统准备去启动或者恢复另一个Activity的时候调用。我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶Activity的使用。
当App准备启动另一个活动时进行回调。
●(5&