在Android开发中,Activity
的启动模式决定了其实例化和调用的方式。以下是四种主要的启动模式及其特点:
1. standard(默认模式)
- 特点:每次启动
Activity
都会创建一个新的实例。 - 注意点:此模式下不会触发
onNewIntent()
方法。
2. singleTop(栈顶复用模式)
- 特点:当启动的
Activity
已经位于任务栈的栈顶时,系统不会创建新的实例,而是复用已有的栈顶实例。 - 注意点:此时会触发
onNewIntent()
方法。但如果任务栈中不存在该Activity
实例,系统会创建新的实例,此时不会调用onNewIntent()
。
3. singleTask(栈内复用模式)
- 特点:如果启动的
Activity
实例已经存在于任务栈内,系统会复用该实例,并将此实例上方的所有Activity
都出栈。 - 注意点:此时会触发
onNewIntent()
方法。但如果任务栈中不存在该Activity
实例,系统会创建新的实例,此时不会调用onNewIntent()
。
4. singleInstance(单实例模式)
- 特点:该模式下的
Activity
会单独占用一个任务栈。即使任务栈中存在该Activity
实例,系统也会复用它。 - 注意点:此时会触发
onNewIntent()
方法。