Android面试必问的Activity的启动模式

   很多时候在面试过程中或者在日常的开发过程中,大多数都会涉及到activity的启动模式.activity的启动模式一共有四种:standard(标准模式),singletop(栈顶复用模式),singletask(栈内复用模式),sinlginstance(唯一实例模式).

1.standard.标准模式 activity的默认模式就是standard模式.在这个模式下,当我们启动一个activity时,就会创建一个activity当实例并放入任务栈中.如果我们多次启动同一个activity当话,就会重复创建这个activity当实例.这样会造成内存空间当占用.

2.singletop.栈顶复用模式.故名思义,只有位于任务栈顶的activity实例才能复用.如果当activity 实例A被启动时.如果实例A已经位于任务栈当栈顶,则直接启动位于栈顶实例A,不需要创建.如果实例A不是位于栈顶或者不存在于任务栈内,则需要重新创建.即只有位于任务栈栈顶顶实例被调用时候才不会创建.其他时候都需要创建.

3.singletask.栈内复用模式.同一栈内实例可以复用.只要任务栈中存在被启动的activity实例,则不会创建新的实例.假如启动实例A,系统会先查找有没有可以存放实例A的任务栈,如果没有则创建任务栈.如果有任务栈,则在任务栈内查找是否存在实例A,如果有则将实例A调到栈顶,如果没有则创建新的实例A. 

如果任务栈内存在启动的Activity实例,若实例位于栈顶,则直接启动,若实例没有位于栈顶,则先将实例上面的实例清空出栈,再将实例调到栈顶启动.

4.singleinstance.唯一实例模式,即 每一个实例单独存在,位于独立的栈内存放.如果启动实例A,则会为A单独创建一个任务栈,并将A存放于任务栈内.每一个实例都是唯一单独存在的于独立的栈内.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值