一、Activity的生命周期
1、启动一个新的Activity
依次会执行
OnCreate() //刚启动,第一次调用的时候
|
\|/
OnStart() //当这个activity能够被我们看到的时候
|
\|/
OnResume() //当这个activity能够获得用户焦点的时候(也就是可操作可点击的时候)
2、从一个Activity–A 跳转到Activity–B
依次会执行
activity-A OnPause() //当应用程序启动了另一个activity。该
| //activity失去焦点被覆盖
\|/
activity-B OnCreate() //刚启动,第一次调用的时候
|
\|/
activity-B OnStart() //当这个activity能够被我们看到的时候
|
\|/
activity-B OnResume() //当这个activity能够获得用户焦点的时
| //候(也就是可操作可点击的时候)
\|/
activity-A OnStop() //当A对于B不可见完全被遮挡的时候
//但是注意Dialog弹框不会调用该方法
2、从一个Activity–B 点击返回键回到Activity–A
依次会执行
activity-B OnPause() //当应用程序启动了另一个activity。该
| //activity失去焦点被覆盖
\|/
activity-A OnResult()//没有被销毁、重新启动
|
\|/
activity-A OnStart() //当这个activity能够被我们看到的时候
|
\|/
activity-A OnResume() //当这个activity能够获得用户焦点的时
| //候(也就是可操作可点击的时候)
\|/
activity-B OnStop() //当B对于A不可见完全被遮挡的时候
| //但是注意Dialog弹框不会调用该方法
\|/
activity-B OnDestory() //activity-B被销毁
//销毁的一般条件(1)finish()(2)按返回键
二、Activity的启动模式
(1)、standrd:默认的启动模式,允许多个activity的对象创建,每次创建都会生成一个新的activity。
(2)、singleTop:处于栈顶就不会创建新的对象(启动相同的activity),可以允许创建多个实例
(3)、singleTask:它允许一个栈中只有一个相同的实例
(4)、singleInstance:它有多个Activity就会有多个栈,每个栈放一个activity