码迷,mamicode.com
首页 > 移动开发 > 详细

Android Activity 任务栈

时间:2016-08-18 19:54:20      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

  在了解了基本的Activity的生命周期后,我们能够很好的在一个Activity上面做相关的业务。但是这是不够的,因为Android通过任务栈来保存整个APP的Activity,合理的调度任务栈才能够提供良好的用户体验。而栈的结构,相信大家都知道——先进后出的线性表,新启动的Activity会位于任务栈的栈顶,处于活动的状态,其他的Activity虽然不在活动状态了,但是依然保留在任务栈中,处于停止的状态(也就是onStop被触发了,但是onDestory没有被触发)。

  一般情况下,返回键和调用finish方法会移除顶部的Activity,然后让后面的Activity恢复活动,但是这也就是在一般情况下。AndroidMainfest.xml文件下面的属性 android:LaunchMode或者Intent的flag能够打破这种状态。

  下面会先介绍一下AndroidMainifest的启动模式

  • standard 
  • singleTop
  • singleTask
  • singleInstance

  1.standard

  默认的启动模式,如果不指定Activity的启动模式,则使用这种方式来启动Activity,这种模式下,每次启动都会创建新的实例,创建后的Activity都会覆盖在原Activity上面.下图展示的就是此启动模式下的栈的状态:

  技术分享

 

  2.singleTop

  如果指定启动Activity为singleTop模式,启动时会判断当前栈顶是不是要启动的Activity,如果是则不创建新的Activity而是直接引用这个Activity,如果不是则创建新的Activity,这种模式通常适用于接受到消息后显示的界面。

 

 

 

Android Activity 任务栈

标签:

原文地址:http://www.cnblogs.com/renhui/p/5785079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!