(转)Android学习笔记 --- android任务栈和启动模式

本文介绍了Android中任务栈的概念及其工作原理,并详细解释了四种不同的Activity启动模式:standard、singleTop、singleTask和singleInstance,帮助开发者更好地理解并利用这些模式提升应用体验。

1、一个应用程序一般都是由多个activity组成的,任务栈(task stack),记录和存放用户开启的activity。

2、当一个应用程序被打开时,系统就会给他分配拟一个任务栈,当任务栈中所有的activity都退出的时候,任务栈就清空了。任务栈中的id是一个integer的数据类型(自增长的)。

3、在android操作系统里面会存在多个任务栈,一个应用程序对应一个任务栈。

4、默认情况下,关闭掉一个应用程序,系统就会清空了这个应用程序。但是应用程序的进程还会被保留

 

为什么要引入任务栈的概念?

  为了记录用户开启了哪些activity,记录这些activity开启的先后顺序,Google引入任务栈(task stack)的概念,为了拥有更好的用户体验。

 

activity的启动模式中可以指定任务栈的模式:

  在AndroidManifest.xml中对指订activity进行配置:

    <activity android:name=".MainActivity" android:launchMode="singleInstance">

四种启动模式:

  1、standard   默认标准的启动模式,每次startActivity都是创建一个新的activity实例

  2、singleTop  单一顶部模式,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例,而是直接使用这个顶部实例

  3、singleTask  单一任务栈,如果在栈中已经有该activity的实例,就重用该实例,会调用实例的onNewIntent()。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果当中不存在该实例,将会创建新的实例放入栈中。注意:singleTask模式的Activity不管是位于栈顶还是栈底,再次运行这个Activity时,都会destory掉它上面的Activity来保证整个栈中只有一个自己,切记切记”这点是毋庸置疑的。

  4、singleInstance  单态 单例模式 单一实例,整个手机操作系统里面只有一个实例存在,activity总是在栈的顶端(因为他是任务中唯一的一个activity),所以总是能够适当的处理行为

  

posted on 2015-09-16 18:15 luojinwei 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/android-ljwBlobs/p/4814084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值