为了账号安全,请及时绑定邮箱和手机立即绑定

AndroidのActivity启动模式

标签:
Android

Activity启动模式

 .概念

    Activity启动模式定义了Activity启动的规则,它决定着Activity的实例创建与重用与否

 .属性

  Activity的启动模式在menifest.xml中的<activity>标签中设置,属性为launchMode

 .分类

  Activity的启动模式分为四类: standard 、 singleTop 、 singleTask 、 singleInstance

   .备注

  Android采用Task来管理不同的Activity。当启动一个Activity时,系统会先创建一个Task, 然后再启动这 个Activity的入口。我们可以把Task理解为   栈。

 .Standard(标准模式)

  设置:系统默认的模式,可不设置 

 特点:每次创建Activity,都会新建一个Activity对象,并置顶

 示例:从Activity A跳转到Activity B,再跳转到ActicityA,则栈为: A -> B -> A

 .SingleTop(栈顶单例模式)

 设置:launchMode = "singleTop"

 特点:检查栈顶元素是否为当前Activity,如果是,则复用;如果不是,则新建Activity,置顶

 示例:当前栈为: A -> B -> C,当前栈顶为C,如果跳转到C,则复用C,栈为: A -> B -> C

 .SingleTask (全栈单例模式)

  设置:launchMode = "singleTask"

 特点:检查全栈元素是否有当前Activity,如果有,则使在该Activity之上的Activity出栈,使其置顶       示例:当前栈为: A -> B -> C -> D,如果跳转到B,则C、D出栈,栈为: A -> B   

 .SingleInstance(系统单例模式)

  设置:launchMode = "singleInstance"

 特点:系统范围检查是否存在该Activity,如果存在,则复用

  从上述总结

 相同点:目标Activity均须置顶

 不同点:  Standard 每次都新建Activity实例 

           SingleTop/SingleTask则先检查是否存在该Activity,存在则复用

           SingleTop由于栈顶操作,不须置顶;SingleTask须出栈置顶

           SingleTop/SingleTask都是实现栈内单例

           SingleInstance则是实现系统单例 

           SingleTask/SingleTop模式,均会调用onNewIntent()     

原文链接:http://www.apkbus.com/blog-192385-60303.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消