简述Android中的四种启动模式及适用场景Android中的四大启动模式分别为:standard ,singleTop,singleTask,singleInstance

第一种:standard(默认)

关于这种模式,大家都知道,就是Android默认的启动模式,就是不显示指定,就是这种模式。

特点:standard模式下,会不断地新建activity实例,都放入同一个task中,即每次转到到该Activity就会创建一个本activity的实例

应用场景:该模式为默认模式,适用于大多数应用场景。

第二种:singleTop

特点:顾名思义,singleTop,如果当前实例在当前的task的栈顶,则直接复用,如果当前实例不再栈顶,则新建实例。

应用场景:

通知消息打开的页面;

耗时操作返回页面;

登录页面

第三种:singleTask

特点:设置了singleTask的页面,只要是task中有这个实例,就会一直复用,而且每次复用这个已存在的实例,都会清空上面的其他实例,将自己直接提升到栈顶位置,显示自己

应用场景:浏览器、微博等页面

大多数 App 的主页。对于大部分应用,当我们在主界面点击回退按钮的时候都是退出应用,那么当我们第一次进入主界面之后,主界面位于栈底,以后不管我们打开了多少个 Activity,只要我们再次回到主界面,都应该使用将主界面Activity 上所有的 Activity 移除的方式来让主界面 Activity 处于栈顶,而不是往栈顶新加一个主界面 Activity 的实例,通过这种方式能够保证退出应用时所有的 Activity 都能被销毁。

第四种:singleInstance

特点:设置了singleInstance的页面,初始时都是新建一个task栈给这个页面,然后后面一直复用这个栈内的页面。注意,只有这种模式会新建一个栈给初始化的页面。最后返回的规律是,先把本页面所在的栈都出完,然后再弹出下一个栈的每个页面。

应用场景:呼叫来电界面。

1.以singleInstance模式启动的Activity具有全局唯一性,即整个系统中只会存在一个这样的实例;

2.以singleInstance模式启动的Activity在整个系统中是单例的,如果在启动这样的Activiyt时,已经存在了一个实例,那么会把它所在的任务调度到前台,重用这个实例;

3.以singleInstance模式启动的Activity具有独占性,即它会独自占用一个任务,被他开启的任何activity都会运行在其他任务中;

4.被 singleInstance 模式的Activity开启的其他activity,能够在新的任务中启动,但不一定开启新的任务,也可能在已有的一个任务中开启。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐