Android学习计划第3期 Activity四种启动模式

activity有四种启动模式,分别为:

  1. standard
  2. singleTop
  3. singleTask
  4. singleInstance

standard

默认启动方式。系统在启动 Activity 的任务中创建 Activity 的新实例并向其传送 Intent。Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实例。A--->B---->C---->B----->A

singleTop

如果当前任务的顶部已存在 Activity 的一个实例,则系统会通过调用该实例的 onNewIntent() 方法向其传送 Intent,而不是创建 Activity 的新实例。Activity 可以多次实例化,而每个实例均可属于不同的任务,并且一个任务可以拥有多个实例(但前提是位于返回栈顶部的 Activity 并不是 Activity 的现有实例)。

一个activity的“ standard ”或“ singleTop “启动模式可以多次实例化。 实例可以属于任何任务(task)并且可以位于activity栈的任何地方

通常情况下,他们调用 startActivity() 启动(除非Intent对象包含一个 FLAG_ACTIVITY_NEW_TASK 指令,在这种情况下,activity将选择一个新的任务(task))。

 

singleTask 和 singleInstance

singleTask

系统创建新任务并实例化位于新任务底部的 Activity。但是,如果该 Activity 的一个实例已存在于一个单独的任务中,则系统会通过调用现有实例的 onNewIntent() 方法向其传送 Intent,而不是创建新实例。一次只能存在 Activity 的一个实例。

singleInstance

与 “singleTask” 相同,只是系统不会将任何其他 Activity 启动到已经包含实例了的任务中。该 Activity 始终是其任务唯一仅有的成员;由此 Activity 启动的任何 Activity 均在单独的任务中打开。

相比之下,“ singleTask ”和“ singleInstance ”启动模式的activity 只能启动在一个任务中。 他们总是在activity栈的顶部。 此外,该设备仅维持一次并且仅一个activity的实例–仅在一样的任务中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值