安卓是采用任务栈来管理Activity的,默认情况下多次启动同一个Activity系统会重复创建这个Activity的实例,并把每个实例依次入栈。为了避免Activity实例的重复创建、应付特殊的场景、安卓为Activity设计了启动模式。
标准启动模式,系统默认。每次启动一个Activity系统都会重新创建一个新的实例,不管这个Activity的实例是否已经存在。
栈顶复用模式,如果当前Activity在栈内存在实例并切处于栈顶位置在不回创建新的Activity,会调用onNewIntent方法。否则,还是会重新创建activity的实例的。
站内复用模式,这是一种单利模式,这种模式下,只要Activity在栈中存在就不回创建新的Activity,会调用onNewIntent方法。
若是Activity不在栈顶,会将该Activity之上的其他Activity销毁掉,并将该Activity置于栈顶位置。
单实例模式,前三种启动模式,都是在同一个栈中,singleInstance 是属于自己独立的一个栈中。它是单一的一个对象,独占一个栈,不会再创建,只是把它提前了。
大屏幕上构建并排功能的一种优化模式
应用场景:多窗口并排功能的时候可以使用,例如:Chrome 浏览器的多窗口
描述:
1)此模式可以用来构建并排功能,并希望在允许用户同时使用多个窗口与确保该功能仍然可用之间取得平衡。
2)使用词模式用户可以顺畅地在大屏幕设备上并排使用最多个窗口;
参考:大屏幕设备上的出色体验: Chrome 多任务处理提高用户工作效率