Activity 的四种启动模式

一、Android系统中的任务栈,类似于一个容器,用于管理所有的Activity实例,

有先进后出的原则,如图:

进入时:


出栈时:





二、我们都知道Activity有四种启动模式 ,分别为standard、singleTop、singleTask、singleInstance。

1.standard启动模式;

  


   1)此模式为activity的默认启动模式,即在不指定activity的情况下,所有的activity皆是在此模式下。

    2)在standard模式下,启动一个新的activity,它就会进入任务栈,并处于栈顶的位置。

    3)如图所示,每当有新的activity建立,它会自动创建一个新的实例,并处于栈顶。

    4)入栈时,Activity01,Activity02,Activity03,依次入栈;

          出栈时,处于栈顶的Activity03先出栈,之后是Activity02,最后是Activity01。


2.singleTop启动模式;


此模式与standard类似,

1)区别是启动了一个Activity处于栈顶时,再次启动时,不再创建新的实例;

      如果启动的Activity没有位于栈顶时,则在创建一个新的实例位于栈顶。

2)如图所示:当前栈顶为Activity03,

     若启动的页面仍为Activity03,则复用Activity03; 

     若启动的页面为不是栈顶的Activity02,则新建Activity04作为栈顶。



3.singleTask启动模式;


          1)此模式下,整个Activity有且只有一个实例。

          2)每次启动Activity的模式时,系统会检查是否存在该实例,若存在该实例,则直接使用该实例,并且将该Activity之上的所有Activity出栈。

                 如果没有,则自动生成新的实例。

           3)如图:依次入栈Activity01,Activity02,Activity03;想要再次启动Activity02,则复用Activity02,并将Activity03移除该栈。




4.singleInstance启动模式;


      1)此模式下,Activity在整个系统中有且只有一个实例,其中,最大的不同是Activity会启动i一个新的任务栈。

      2)若启动的Activity不存在,系统会创建一个新的任务栈,再创建一个新的Activity实例,并把该Activity加入栈顶;

         若启动的Activity已经存在,系统会把该Activity所在的任务栈转到前台,从而使该Activity显现出来。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值