LunchMode 2

singleTask
  1)该模式的Activity是单例的,即在同一时刻Android系统中只能存在该Activity的一个实例,
     所以当重复启动该Activity时并不会创建该Activity的新实例,而是重新使该Activity的实例进入交互状态,
     如果该Activity的实例不位于当前任
务的栈顶,
     则将该实例之上的所有Activity释放,以使该Activity重新成为栈顶。

  2)该模式的Activity在第一次创建时,
     如果所在任务的taskAffinity值与该Activity的taskAffinity值相同,则直接在该任务中创建Activity的实例,
     如果该任务的taskAffinity值与该Activity的taskAffinity值不同,则在新的task中创建该实例

如果新要跳转的activity在栈里有,不管位于什么位置,把此activity实例拿到栈顶,并把此activity上的activity全部杀死。

我觉得可以在退出某个程序,或者某个程序的某个模块时使用。
比如在某程序的首页,或者某一个模块的首页设置成此属性,
当点击某一按钮跳转到这个页面的时候,这个页面以后的所有页面都被杀死,
当点击返回的时候就不会返回那些字页面了,这个值得可操作性比较大。



singleInstance

  1)该模式的Activity是单例的,即在同一时刻Android系统中只能存在该Activity的一个实例,所以当重复启动该Activity时并不会创建该Activity的新实例。
  2)该模式的Activity的实例不会与其他实例同处于一个栈中。
       所以当通过该Activity的实例启动其他的Activity时,其他Activity的新实例不会在该任务中直接创建
       如果其他Activity的新实例的吸附值与现存某任务的吸附值一致,则在与其吸附值一致的任务中创建,
       如果没有与其吸附值相同的现存任务,则在新任务中创建
  3)该模式的Activity实例第一次创建时一定创建在一个新的任务中。

把新要跳转到的activity新建于另一个栈中,而且只能有一个。

第四中,很复杂了就,主要是这种可以配合其他三种使用,而且不好理解,我在网上找个例子,说具体应用的,
(假如我们有一个share应用,其中的ShareActivity是入口Activity,也是可供其他应用调用的Activity,我们把这个Activity的启动模式设置为singleInstance,
然后在其他应用中调用,当我们打开ShareActivity后再按后退键回到原来界面时,ShareActivity做为一个独立的个体存在,
如果这时我们打开share应用,无需创建新的ShareActivity实例即可看到结果,
因为系统会自动查找,存在则直接利用)。
我觉得好像是说,经常用的,或者公共应用可以用这个值,
新建一次就不会再新建了,使用的时候直接使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值