博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android面试】Activity的四种启动模式
阅读量:1825 次
发布时间:2019-04-25

本文共 762 字,大约阅读时间需要 2 分钟。

四种模式

  • 标准模式(Standard)
  • 单一实例(SingleInstance)
  • 单一顶部(SingleTop)
  • 单一任务栈(SingleTask)

标准模式(默认模式)

每次都会新建一个Activity

单一实例(SingleInstance)

SingleInstance也是单例的,singleTask只是任务栈内单例,系统里是可以有多个singleTask Activity实例的,而singleInstance Activity在整个系统里只有一个实例,启动一singleInstanceActivity时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity

单一顶部(SingleTop)

与标准模式比较相似,当Activity已经处于任务栈的顶部时,再去启动,不会再创建新的实例,如果不处于栈顶,就会重新新建一个Activity

对于每次启动Activity,不会再创建新的Activity,也不会重新走onCreate方法,只会在onNewIntent方法中走

所以,对于一个搜索Activity,可以输入搜索内容,也可以产生搜索结果,这时候,我们就需要一个SingleTop模式的Activity,不会让用户每次都产生一个实例。典型的例子就是:通讯录,浏览器

单一任务栈(SingleTask)

SingleTask模式的Activity在同一个Task中只存在一个实例,如果Activity存在顶部,并不会再创建新的Activity实例。SingleTask模式的Activity会导致任务栈内使他上面的Activity销毁,有可能影响到用户体验

当在SingleTask模式的A启动B,再从B启动A时,这时候也不会走A的onCreate方法,而是会走onNewIntent方法。

参考:

转载地址:http://buxkf.baihongyu.com/

你可能感兴趣的文章
建立索引的好处
查看>>
java如何对ArrayList中对象按照该对象某属性排序
查看>>
今天碰到IE的一个问题, 两个IFRAME的问题
查看>>
js实现列表滚动
查看>>
WindowXP下PHP5开发环境配置 (转载)
查看>>
用java调用webservice接口
查看>>
jquery 横向柱形图
查看>>
log4j.xml输出日志调试过程
查看>>
<param name="wmode" value="transparent">
查看>>
myeclipse集成ant
查看>>
MySQL中的配置参数interactive_timeout和wait_timeout(可能导致过多sleep进程的两个参数)
查看>>
mysql show processlist命令 详解
查看>>
虚拟机字节码执行引擎
查看>>
HashMap小记
查看>>
类的热编译+热加载的功能
查看>>
Vector类与ArrayList类
查看>>
String特性之 “字符串驻留池”
查看>>
集合篇-----ArrayList与LinkedList之间的那些小事
查看>>
Linux系统的优点小结
查看>>
15个Google面试题,看看自己能答对几个,看你是否真的聪明。。。
查看>>