Activity的启动模式

为什么Activity需要启动模式

Activity为什么需要启动模式,。我们知道,在默认的情况下,当我们多次启动同一个Activity的时候,系统会创建多个Activity并把它们存放在任务栈里,当我们点击back键是会一一回退、任务栈是一种后进先出的栈结构,也就是说我们每按一下back键就会有有一个Activity出栈,知道栈空为止,当栈中没有Activity系统就会回收这个任务线,多次启动同一个Activity就会多次创建一个Activity那不是显得就有点呆了嘛。所以提供了启动模式让我们可以根据项目的需求来灵活使用,显得机智的一批。

Activity的启动模式

1.standard:标准模式,每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否已经存在。被创建的Activity的生命周期是典型的生命周期,她的onCreate,onStart,OnResume都会被调用,这是一种典型的多实例实现,一个任务栈可以有多个实例,每个实例也也可以属于不同的任务栈。
2.singleTop:栈顶复用示 。在这种模式下,如果新Activity已经位于栈顶,那么此Activity将不会被创建。同时它的onNewIntent方法也会被回调。通过此方法的参数我们可以获取到当前请求的信息。需要注意的是Activity的onCreate,onStart不会被调用(可以有很多用处例如修改信息后,当然不推荐使用)
3.singleTask:栈内复用模式,这是一种单例模式,在这种模式下只要Activity在其中一个栈中存在就不会创建新的Activity实例,和SinggleTop一样系统也会回调它的onNewIntent方法
4.singleInstance:单例模式,这是一种加强的singleTask模式。就是具有这种模式的Activity会单独处于一个栈中。
(总结Android艺术开发探索)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值