android中运行的activity处于一个堆栈之中,当前所在activity处于最顶层。每当用户进行操作打开新的activity,android就会自动添加新的activity在堆栈的最顶层。
处于最底层的activity会被系统适时地移除,释放内存空间。
1.activity存在的状态
a 活跃running 处于堆栈顶部 \____ 可见
b 暂停paused 处于堆栈顶部的activity没有占据整个屏幕或者半透明时其下显示出来 /
c 结束stopped 在屏幕上彻底不可见,但并没有从activity堆栈中被移走 \____不可见
d 销毁killed(未启动) 死亡 /
2.activity的生命周期模型
新的activity onCreate() onStart() onResume()
↓ ← onResume() ← ·
↓ ↑
运行状态 → onPause() → 暂停 - - - - -
↑ ↓ |
onResume() onStop() |
onStart() ↓ |
onResume() ← 结束状态 - - -|
↓ |
onDestroy() |
↓ |
killed ← - -
onCreate() 在activity 被创建时运行
onStart() 在activity 开始工作时运行
onResume() 在activity还原到运行状态之前运行
onPause() 暂停
onStop() 停止
onDestroy() 销毁