标准模式
启动一个activity时,在当前的任务栈中添加一个实例置于栈顶
栈顶复用
如果新建的Activity位于任务栈的顶端,则直接冲用处于栈顶的实例
栈内复用
查看Activity想要的任务栈是否存在,如果不存在,则重建一个新的任务栈,然后将该实例放置在栈顶
如果存在,看其是否在栈内,若在栈内,则将其之上的所有实例全部出栈,等效将其置于栈顶,若不在栈内,则新建一个实例并置于栈顶
单例
直接创建一个任务栈然后将该实例放入栈中
设置方式
- 在activity内添加android:lanchMode=“启动模式"
- 通过intent设置
注:intent的优先级高于lanchmode的优先级
Activity的生命周期
- onCreate
- onStart
- onResume
- 运行状态。。。。
- onPause
- onStop
- onDestroy
配对状态
- Create和Destoy是配对的
- Start和Stop是配对的
- Resume和Pause是配对的
Tips:
首先,从当前Activity A启动新的Activity B时,先调用A的pause,再调用B的Resume
几种一般场景
其中A=Activity
启动A
Create-> Start -> Resume 运行
当前A被部分覆盖但是仍然可见
运行->Pause
当前A被全部覆盖不可见
运行->Pause->Stop
当前A从部分覆盖到前台
Pause->Resume->运行
当前A从全部覆盖到前台
Stop->Restart->Start->Resume->运行
从运行到退出
运行->Pause->Stop->Destroy
当A处于后台或被完全覆盖,且内存不足时
Stop->Destroy
若再次进入A,则重新来一遍