1. 什么是Activity

activity是Android应用程序的重要组成部分,一个activity即使你所看到的一个界面,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作,一个app能有多个activity。

2. 返回栈

Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack)。栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。系统总是会显示处于栈顶的活动给用户。每次新打开一个app的时候,系统会为他单独创建一个任务栈,其中用来存放关于该app的所有活动。

3. activity的生命周期

如图所示
Android-什么是Activity - 图1

4. 4种状态

在一个活动的生命周期中,最多可能会有4种状态

  1. 运行状态

当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。

  1. 暂停状态

当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。你可能会觉得既然活动已经不在栈顶了,还怎么会可见呢?这是因为并不是每一个活动都会占满整个屏幕的,比如对话框形式的活动只会占用屏幕中间的部分区域,系统只有在内存极低的情况下才会倾向于回收该部分内存

  1. 停止状态

当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。系统仍然会为这种活动保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要内存时,处于停止状态的活动有可能会被系统回收。也就是杀后台。

  1. 销毁状态

当一个活动从返回栈中移除后就变成了销毁状态。系统会最倾向于回收处于这种状态的活动,从而保证手机的内存充足。