`
lj_gzy2014
  • 浏览: 16644 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

activity的四种启动模式

 
阅读更多

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

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

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

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

 

 

 

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

            2、singleTop启动模式

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

     如下图,跳转页面为本身时,activity实例id是不变的

 

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

 
         3、singleTask(栈内跳转)

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

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

 控制启动模式的代码:

 
 

           

        

             

  • 大小: 5.2 KB
  • 大小: 5.2 KB
  • 大小: 6.2 KB
  • 大小: 15.7 KB
  • 大小: 8.3 KB
  • 大小: 5.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics