Activity的启动模式

Activity启动模式定义Activity实例与当前栈之间的联系

设置Activity的启动模式有两种方式:

  1. 清单文件配置
  2. Intent设置flag

Activity总共有五种启动模式:

  • standard(默认启动方式)->flag没有设置值
    可以有多个实例,不同实例可以存在多个栈里,不同的栈可以有多个实例
  • singleTop->FLAG_ACTIVITY_SINGLE_TOP
    与standard模式类似,但如果在启动的栈顶已经有该Activity的实例,则不创建新的实例,而是调用已有实例的onNewIntent()方法
  • singleTask->FLAG_ACTIVITY_NEW_TASK
    是某个栈里唯一的实例,该栈可以存在其他Activity实例,他的所在栈是,启动它的Activity所在栈,如果在该栈再次被启动,则会清空在他之上的Activity,并调用他的onNewIntent()fangfa ;如果在其他栈启动,则除了清空他之上的Activity,还会把他之下的Activity带走一起叠在其他栈的上面,注意两个不合并,可以看出他跟栈是绑定的
  • singleInstance->flag无对应
    与singleTask很像,但是它所在的栈容不下任何其他Activity实例,也就是说,任何Activity要打开它要么,已经有一个栈里面唯一只有它,那么回调它的onNewintent()方法,如果没有,新建一个栈,它如果要打开其他Activity,则必须在其他栈!
  • xml无对应->FLAG_ACTIVITY_CLEAR_TOP
    singleTask模式会调用该模式,他的功能是清空当前栈中该实例之上的其他Activity

关联关系(affinity)

表明一个Activity要跟那个Task关联,通常情况下,同一个应用的所有Activity属于同一个栈(除了singleInstance)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值