Android开发探索第一章 Activity生命周期及启动模式总结(二)
来源:互联网 发布:mysql insert多条数据 编辑:程序博客网 时间:2024/05/17 08:29
Activity的四种启动模式:
standard:系统默认启动方式。每次启动都会重新创建一个新的Activity
singleTop:栈顶复用模式。如果待启动的Activity位于任务栈栈顶,则此Activity不会重新创建,同时回调它的onNewIntent方法,通过这个方法可以取出当前请求信息;如果待启动的Activity已存在但不是栈顶位置,那么新的Activity仍然会被重新创建
singleTask:栈内复用模式。只要Activity在一个栈中存在,那么多次启动该Activity都不会重新创建实例,同时也会回调onNewIntent方法。同时singleTask具有clearTop的效果,它会导致栈内在待启动的Activity之上的所有Activity都被弹出栈。
举几个例子:
case 1: 目前任务栈S1中情况为ABC,这是D以singleTask模式请求启动,其所需任务栈为S2,所以系统会先创建任务栈S2,在创建D并将其放入S2中case 2:另一种情况,假设D需要S1,其他情况如上,那么D的实例会直接添加到S1中case 3:D所需S1,S1中情况是CDBA,这是D不会创建新的实例,它会把AB两个Activity弹出栈,栈内情况就变成了CD
singleInstance:单实例模式。一种加强的singleTask模式,它除了具有singleTask所有特性外,还加强了一点,具有该模式的Activity启动时系统会为它创建一个新栈,它只能单独位于一个栈中。
Actiivity的Flags:
大部分情况下我们不需要指定Activity的标记位。有些标记位是系统内部使用的,应用不需要手动设置这些属性以防出现问题。
常用标记位:
FLAG_ACTIVITY_NEW_TASK:为Activity指定“singleTask“启动模式
FLAG_ACTIVITY_SINGLE_TOP:为Activity指定”singleTop”启动模式
FLAG_ACTIVITY_CLEAR_TOP:具有此标记位的Activity,当它启动时,同一任务栈中所有位于它之上的Activity都要被弹出栈。一般和FLAG_ACTIVITY_NEW_TASK配合使用
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:具有此标记的Activity不会出现在历史Activity列表中。它等同于在XML中指定Activity的属性android:excludeFromRecents=”true”
什么是任务栈???
必须要提到一个参数TaskAffinity,它标识了一个任务栈的名字。默认情况下,所有Activity所需任务栈名字为应用的包名。我们可以为每个Activity单独指定TaskAffinity属性(不能与包名相同)。
TaskAffinity主要与singleTask和allowTaskReparenting属性配合使用,其他情况下没有意义。
具体怎么配合使用可以查阅书籍(P19)或是www.baidu.com
- Android开发探索第一章 Activity生命周期及启动模式总结(二)
- Android开发探索第一章 Activity生命周期及启动模式总结(一)
- Android开发探索第一章 Activity生命周期及启动模式总结(三)
- 第一章Activity的生命周期和启动模式(Android开发艺术探索)
- Activity生命周期和启动模式 - Android开发艺术探索读书笔记(第一章)
- Activity的生命周期和启动模式-Android开发艺术探索读书笔记第一章
- 《Android 开发艺术探索》随手笔记——第一章Activity生命周期和启动模式
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
- Android开发艺术探索读书笔记 第一章 Activity的生命周期和启动模式
- Android 艺术开发探索 第一章 Activity 的生命周期和启动模式观后感
- 【Android开发艺术探索读书笔记】 第一章 Activity的生命周期与启动模式
- 《Android开发艺术探索》读书笔记-第一章 Activity的生命周期和启动模式
- 《Android开发艺术探索》阅读笔记(一)、activity生命周期 及 启动模式
- 《Android开发艺术探索》读书笔记----第一章:Activity的启动模式
- Android开发艺术-第一章Activity的生命周期和启动模式
- Android开发艺术探索--Activity生命周期和启动模式
- 《Android开发艺术探索》之Activity的生命周期及启动模式
- 《Android开发艺术探索》之学习笔记(一)Activity的生命周期和启动模式
- 机房重构—单例模式
- 8天学通MongoDB——第一天 基础入门
- Leetcode 5. Longest Palindromic Substring
- Android Broadcast详解
- Xcode快捷键
- Android开发探索第一章 Activity生命周期及启动模式总结(二)
- eclipse集成python开发环境
- iis上配置cgi
- nyoj--24 素数距离问题
- stm32 SWD下载
- Web开发:我希望得到的编程学习路线图
- python selenium的在线安装及离线安装
- bc #75 1002
- 《数据结构与算法分析C++描述(第3版)》第三章List容器可编译运行版