基础知识篇(三)Activity启动模式

发布时间:2024年01月12日

安卓是采用任务栈来管理Activity的,默认情况下多次启动同一个Activity系统会重复创建这个Activity的实例,并把每个实例依次入栈。为了避免Activity实例的重复创建、应付特殊的场景、安卓为Activity设计了启动模式。

  • standard - 标准模式
  • singleTop - 栈顶复用模式
  • singleTask - 栈内复用模式
  • singleInstance 单实例模式
  • singleInstancePerTask 大屏幕上构建并排功能的一种优化模式

启动模式

standard

标准启动模式,系统默认。每次启动一个Activity系统都会重新创建一个新的实例,不管这个Activity的实例是否已经存在。

singleTop

栈顶复用模式,如果当前Activity在栈内存在实例并切处于栈顶位置在不回创建新的Activity,会调用onNewIntent方法。否则,还是会重新创建activity的实例的。

singleTask

站内复用模式,这是一种单利模式,这种模式下,只要Activity在栈中存在就不回创建新的Activity,会调用onNewIntent方法。
若是Activity不在栈顶,会将该Activity之上的其他Activity销毁掉,并将该Activity置于栈顶位置。

singleInstance

单实例模式,前三种启动模式,都是在同一个栈中,singleInstance 是属于自己独立的一个栈中。它是单一的一个对象,独占一个栈,不会再创建,只是把它提前了。

singleInstancePerTask

大屏幕上构建并排功能的一种优化模式
应用场景:多窗口并排功能的时候可以使用,例如:Chrome 浏览器的多窗口
描述:
1)此模式可以用来构建并排功能,并希望在允许用户同时使用多个窗口与确保该功能仍然可用之间取得平衡。
2)使用词模式用户可以顺畅地在大屏幕设备上并排使用最多个窗口;
参考:大屏幕设备上的出色体验: Chrome 多任务处理提高用户工作效率

文章来源:https://blog.csdn.net/mylike_45/article/details/135556687
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。