LaunchMode
- 可以在Manifest中修改Launchmode
- 有以下几种取值
standard
singleTop
singleTask
singleInstance
<activity android:name=".MainActivity2" android:launchMode="standard"/>
standard
- 标准模式,默认模式,每次都会再任务栈顶部重新new一个Activity
- 生命周期流程
onCreate>onStart>onResume
singleTop
- 栈顶复用,如果要开始起Activity在栈顶,则复用。
- 应用场景
IM、新闻等推送消息页面。 - 生命周期流程
onNewIntent>onResume
singleTask
- 栈内复用,清除该Activity上面的所有其他Activity。
- 应该场景
- APP主界面,每次回到主界面后会清除其他的Activity
- 页面的防重复打开
- 生命周期流程
onNewIntent>onRestart>onStart>onResume
singleInstance
- 在整个Android内存中有且仅有一个实例,该实例独享一个任务栈。
- 应用场景
呼叫来电的界面。 - 生命周期
onNewIntent>onRestart>onStart>onResume
对生命周期的影响
- Activity被复用后,不会重新走onCreate方法,会走onNewIntent回调