activity的四种启动模式

               我们都知道打开一个app后,我们点开了好几个界面后,就需要点击几次后退键,才能退出程序,这是为什么呢?答案是启动模式与任务栈。

               activity有四种启动模式:standard、singleTop、singleTask、singleInstance。

              1、standard启动模式(默认的启动模式)

                  这种模式的特点是,每次页面跳转都会生成一个新的页面并加入任务栈,点击返回键时,栈顶界面出栈并被销毁

 

 

 

   上面三张截图是在默认启动模式下的截图,可以看出,一个app程序启动时就会分配一个任务栈,此栈栈ID为4,每次新打开一个界面时,都会创建不同的activity实例。

            2、singleTop启动模式

     这种模式的特点是,在页面跳转时会进行判断,如果目的页面在栈顶,就不会创建新的activity实例;如果不在栈顶,就创建新的activity实例,并入栈。

     如下图,跳转页面为本身时,activity实例id是不变的
activity的四种启动模式

 

如果跳转到其他页面,再跳回来的话,id就会改变,即创建了新的activity实例
 

 
         3、singleTask(栈内跳转)

            这种启动模式的特点是只有一个任务栈,而且任务栈中的实例不重复,有则跳转,没有则创建并跳转。所有创建的实例都在一个任务栈中。
 
       4、singleInstance(栈间跳转)

            这种启动模式的特点是每个任务栈只有一个activity实例,也就是说,每次页面跳转,如果目的页面没有创建过,就会创建一个新的任务栈和一个新的activity实例;如果已经存在,就会到相应的任务栈中找到相应的activity实例。
 

 控制启动模式的代码:
activity的四种启动模式
 
 

           

        

             

你可能感兴趣的:(Activity)