首页 > 试题广场 >

Activty和Task的启动模式有哪些?

[单选题]
Activty和Task的启动模式有哪些?
  • standard、singleTop
  • singleTop、singleTask
  • singleTask、singleInstance
  • standard、singleTop、singleTask、singleInstance

“拿来***”standard模式。哪里需要调用我我就去哪里,可以多次实例化,可以几个相同的Activity重叠。

    “拒绝堆叠”singleTop模式。可以多次实例化,但是不可以多个相同的Activity重叠,当堆栈的顶部为相同的Activity时,会调用onNewIntent函数。

    “独立门户”singleTask模式。同一个应用中调用该Activity时,如果该Activity没有被实例化,会在本应用程序的Task内实例 化,如果已经实例化,会将Task中其上的Activity销毁后,调用onNewIntent;其它应用程序调用该Activity时,如果该 Activity没有被实例化,会创建新的Task并实例化后入栈,如果已经实例化,会销毁其上的Activity,并调用onNewIntent。一句 话,singleTask就是“独立门户”,在自己的Task里,并且启动时不允许其他Activity凌驾于自己之上。

    “孤独寂寞”singleInstance模式。加载该Activity时如果没有实例化,他会创建新的Task后,实例化入栈,如果已经存在,直接调用 onNewIntent,该Activity的Task中不允许启动其它的Activity,任何从该Activity启动的其他Activity都将被 放到其他task中,先检查是否有本应用的task,没有的话就创建。

发表于 2015-09-20 10:59:39 回复(6)
正确答案ABCD
发表于 2018-03-27 08:21:35 回复(0)

1 Activity为什么要用指定模式??

首先介绍下Android对Activity的管理:Android采用Task来管理多个Activity,当我们启动一个Activity时,系统 就会创建一个Task,然后启动这个Activity的入口。
Android并未给Task提供API,只能通过调用Activity的getTaskId()方法获取它所在的Task的ID,我们可以把Task理解为Activity 栈,Task以栈来管理Activity。

2.四大启动模式的理解


standard加载模式

每次通过这种模式启动Activity时,Android总会为启动的Activity创建一个新的实例,并将该Activity添加到当前Task栈中,这种模式不会创建新的Task,只是将新Activity添加到原有的Task 中,这种Standard模式是每次都会创建新的Activity对象,当点击返回按钮时,他会将栈顶(当前Activity)消灭,然后跳 到下一层,例如如果现在Activity是44ed8c50,那么当我们点击返回时Activity会变为44f28a48,不过此时在这个 Activity中再次点击按钮创建对象时,它会另外创建新的Activity对象,这种模式可能大多数情况下不是我们需要的,因为对系统性能的消耗过 大


singleTop
从上面的解释中即可知道,在每次使用新的Activity时会自动检测栈顶的当前Activity是否是需要引用的Activity,如果是则直接引用此Activity,而不会创建新的Activity。
single Task
此启动模式和singleTop在名字上即可看出区别,即singleTop每次只检测当前栈顶的Activity是否是我们需要请求创建的,而 singleTask则会检测栈中全部的Activity对象,从上向下,如果检测到是我们所请求的则会消灭此Activity对象上面的对象,直接把检 测到的我们需要的Activity置为栈顶。
编辑于 2016-10-19 15:54:39 回复(1)
D,四个
发表于 2016-05-20 20:50:55 回复(0)
D
发表于 2015-07-08 11:36:55 回复(0)
D
发表于 2015-04-13 11:27:59 回复(0)
D
发表于 2015-04-05 19:45:18 回复(0)
D
发表于 2015-04-03 14:54:56 回复(0)
D 不解释
发表于 2015-03-27 15:09:53 回复(0)
D
发表于 2015-03-12 10:35:46 回复(0)
D
发表于 2015-02-26 22:58:47 回复(0)
D
发表于 2015-02-25 14:32:48 回复(0)
D
发表于 2015-02-12 19:41:24 回复(0)
D
发表于 2015-02-11 22:41:33 回复(0)