返回栈

  • Activity是可层叠的,每启动一个新的Activity,都会覆盖在原Activity中。然后每次点击返回时,都会销毁掉最上面的Activity。下面的Activity就会重新显示是出来。

Activity状态

  1. 运行状态
    当一个Activity位于返回栈的栈顶时,Activity就处于运行状态。系统最不愿意回收的就是
    处于运行状态的Activity,因为这会带来非常差的用户体验。
  2. 暂停状态
    当一个Activity不再处于栈顶位置,但仍然可见时,Activity就进入了暂停状态。你可能会
    觉得,既然Activity已经不在栈顶了,怎么会可见呢?这是因为并不是每一个Activity都会
    占满整个屏幕,比如对话框形式的Activity只会占用屏幕中间的部分区域。处于暂停状态的
    Activity仍然是完全存活着的,系统也不愿意回收这种Activity(因为它还是可见的,回收
    可见的东西都会在用户体验方面有不好的影响),只有在内存极低的情况下,系统才会去
    考虑回收这种Activity。
  3. 停止状态
    当一个Activity不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。系统仍然
    会为这种Activity保存相应的状态和成员变量,但是这并不是完全可靠的,当其他地方需要
    内存时,处于停止状态的Activity有可能会被系统回收。
  4. 销毁状态
    一个Activity从返回栈中移除后就变成了销毁状态。系统最倾向于回收处于这种状态的
    Activity,以保证手机的内存充足。

生命周期