Android的四种启动方式

Activity的启动模式

这里写图片描述

(一)standard
1.默认的启动模式,不写启动模式的话,系统就会自动使用这一模式。
2.在standard模式下,每次启动一个新的Activity,它就会进入任务栈,并处于栈顶的位置,对于使用standard模式的Activity,每次启动都会创建一个新的示例。
3.适用于绝大多数的应用场景。

举例:有一个FirstActivity,里面有个按钮,让它再次跳转到FirstActivity,多点几次。然后点击返回,它会一个一个的进行返回操作。就像是一个无盖的盒子,点击一次放进去一个东西,再点击一次,又把新(也可能是同一个)东西放在以前的东西上面,一层层的摞起来,当你要取出来东西的时候,当然要自上而下的取出来。

(二)singleTop:
这里写图片描述
1.singleTop启动模式和standard类似,不同的是,当启动的Activity已经位于栈顶时,则直接使用它,不会在创建新的实例。
2.解决了用户体验的问题,避免已经打开的页面被重复打开多次

举例:在这个模式下,FirstActivity中一个按钮跳转到FirstActivity,这时,不管你点击多少次按钮,它就只会建立一个实例,因为都是相同的Activity,这个Activity一直都在栈顶,他不会再重新建一个实例,点击一次返回直接退出。那我们想一想,如果让FirstActivity-SecondActivity-FirstActivity,这样就和standard一样了,因为栈顶一直都在变。

(三)singleTask :
1.当Activity的启动模式为singleTask时,每次启动该Activity时,系统首先会检查栈中是否存在该Activity的实例,如果已经存在则直接使用实例,并将当前Activity之上的所有Activity出栈,如果没有则创建一个新的实例。(当我们要创建FirstActivity的实例的时候,他会查询栈中是否有相同的实例,如果有,在栈顶,那和singleTop一样,不在栈顶,把FirstActivity的实例上面的直接销毁,让FirstActivity作栈顶。相同的实例不会再创建第二次。)
2.资源开销(内存占用、CPU占用)非常大的使用该模式。

(四)singleInstance
这里写图片描述
1.singleInstance模式加载Activity时,只会创建一个Activity实例,并且会使用一个全新的任务栈来加载该Activity实例。(当加载FirstActivity的时候,如果有,直接用;如果没有,创建一个Task,把自己实例化了放进去。然后它只允许它自己在这个栈中。如果现在想加载SecondActivity,它会再创建一个Task,实例化后放进去。如果想再加载FirstActivity,就直接调用之前创建的那个。)
2.特点是整个手机操作系统里只有一个实例存在

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值