8.活动的启动模式
来源:互联网 发布:银行核心业务系统数据 编辑:程序博客网 时间:2024/06/03 22:05
这个知识点,可以先不了解,但是了解了后,可以加深对Activity的理解,以前觉得理论太多,就草草看了一遍,并没有影响后面的学习,但是,倒回来看的时候,才发现真的很有意思,比如在这个系列的笔记中的第4篇中数据的传输就说到一些问题。
开始学习前要先知道:
1.安卓中的返回栈,先进后出,都知道吧,活动就是放在返回栈中管理的。
2.在哪里设置Activity的启动模式,在AndroidManifest.xml中,给
<activity>标签指定:android:luanchMode="xxx"
来设置启动模式
3.指定了启动模式的Acitivity,才会以你指定的模式启动,不然就是默认模式启动
4.这里强调的是用Intent启动Acitvity,不是指重新唤醒Activity
一共四种:
1.standard 默认启动模式,你不设置时的默认启动模式。 该模式不管返回栈有没有一个活动的实例。 在不在栈顶,都会创建一个新的活动。 不信是吧?你在onCreate()方法中打印当前Activity的地址,然后用 Intent再启动一次这个当前活动,你看看两次打印的一不一样2.singleTop 什么意思???当该活动在栈顶时就不会创建新的活动,不信??你继续试试。3.singleTask 这个就是真正的单一模式了,一个很强硬的模式。为什么? 这个模式保证返回栈中不会有相同的活动实例,比如,MainAcitvity 在该模式中时,返回栈中只会有一个。怎么强硬??处于栈顶还好说 当不处于栈顶时,就会把返回栈中MainActivity之上的所有活动清掉 想见识一下吗???我们知道,标准的模式中从活动A启动一个 活动B,再从活动B启动一个活动A,如果这个过程你没有调用finish() 方法,那么你就要按3次返回键才能退出程序,但是在singleTask就按一次4.singleInstance 这就厉害了,我们知道,每一个程序都有自己的返回栈来管理自己的Activity 但是这个模式就会创建一个新的返回栈,来管理你用该模式的Activity 使用的场景:假设我们的程序有一个活动要给其他程序使用,实现这个Activity 和其他程序共同使用一个返回栈来管理这个活动,就可以这样写,这样就不用在两个程序 的返回栈中又创建一个该活动。你可以打印当前返回栈的Id 获取返回栈Id的方法:getTaskId();
阅读全文
0 0
- 8.活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动的启动模式
- 活动——活动的启动模式
- SVD++
- 【C语言】预处理(部分内容未整理)
- 入门:学习《Head First HTML与CSS》
- 索引
- 从输入URL到页面加载显示完成的过程
- 8.活动的启动模式
- 1042. Shuffling Machine (20)
- Spark SVDPlusPlus 源码分析
- 解析XML文件——SAX基本操作
- js对象与json字符串的互转
- JavaScript-简单语法1
- 设计模式六大原则——里氏替换原则
- Android Studio下,gradle project sync failed 错误
- 重置MySQL Root密码