Android中与task相关的几个属性
1、与任务相关的属性
- taskAffinity :修改任何给定Activity的关联
- 系统使用包名标识应用的默认任务关联;
- taskAffinity属性取字符串值,必须不同于包名;
- taskAffinify起作用的两种情况
- 启动Activity的Intent包含FLAG_ACTIVITY_NEW_TASK;
- Activity的allowTaskReparenting为true;
- lauchMode
- standard,默认模式 —— 系统在启动Activity的任务中创建Activity的新实例并向其传送Intent。Activity可以多次实例化,每个实例可以属于不同任务,一个任务可以拥有多个实例。
- singleTop —— 若当前任务的顶部已经存在Activity的一个实例,则系统会通过onNewIntent()方法传送Intent。Activity可以多次实例化,每个实例均可属于不同的任务,一个任务可以拥有多个实例(前提是位于返回栈顶的Activity并不是Activity的现有实例)。
- singleTask —— 系统创建新任务并实例化位于新任务底部的Activity。如果该Activity的一个实例已经存在一个单独任务中,系统会通过现有实例的onNewIntent()方法向其传送Intent。一次只能存在Activity的一个实例。
- singleInstance —— 与singleTask相同,只是系统不会将任何其他Acitivty启动到包含实例的任务中。该Activity是其任务唯一仅有的成员;由此Activity启动的任何Activity均在单独任务打开。
- 使用launchMode属性为Activity指定的行为可以由Intent附带的Activity启动标志替代。
- allowTaskReparenting —— true/false,Activity是否可以从其启动的任务移动到与其具有关联的任务。
- clearTaskOnLaunch —— true/false,若设置为true,每当用户离开任务后返回时,系统都会将堆栈清除到只剩下根Activity。与alwaysRetainTaskState刚好相反。
- alwaysRetainTaskState —— true/false,用户长时间离开任务后,仍将所有Activity保留在其堆栈中(默认会清除根Activity外的其他Activity)。
- finishOnTaskLaunch —— true/false,类似clearTaskOnLaunch,但只对单个Activity起作用。可能导致任何Activity停止,包括根Activity。用户离开后返回任务,任务将不复存在。
2、与任务相关的Intent标志 (启动模式)
- FLAG_ACTIVITY_NEW_TASK —— 在新任务中启动Activity。如果正在启动的Activity已经处于运行状态,则该任务会转到前台并恢复其最后状态,同时Activity会在onNewIntent()中收到新Intent。
- 在Activity上下文之外启动Activity需要给Intent设置FLAG_ACTIVITY_NEW_TASK标志,否则会报异常。
- 首先会查找是否存在和被启动Activity具有相同亲和性的任务栈,如果有,则直接把这个栈整体移动到前台,并保持栈中状态不变。
- 默认情况下同一个应用中的所有Activity拥有相同的taskAffinity
- FLAG_ACTIVITY_SINGLE_TOP—— 如果正在启动的Activity是当前Activity(位于返回战顶部),则现有实例会接收对onNewIntent()的调用,而不是创建新实例。产生与singleTop相同的行为。
- FLAG_ACTIVITY_CLEAR_TOP —— 如果正在启动的Activity已在当前任务中运行,则会销毁当前任务顶部所有Activity,并通过onNewIntent()将此Intent传递给Activity已恢复的实例。
- FLAG_ACTIVITY_CLEAR_TOP通常与FLAG_ACTIVITY_NEW_TASK结合使用。
3、处理关联(即Activity优先属于哪个任务)
(1)默认情况下,同一应用中的所有Activity彼此关联,优先位于相同任务中。
(2)通过 taskAffinity属性设置关联
Android中与task相关的几个属性的更多相关文章
- Android中关于Task的一些认识
Android中Task是一个逻辑上的概念,简单地说,就是一个栈里面顺序存储着的多个Activity.这些Activity能够是来自同一个App,也能够是来自不同的Apps. Task的创建 比方之前 ...
- Android中的task和stack
今天在重新理了一遍intent的过程中发现task是一个神奇的东西,而它又和stack有着很深的联系.task顾名思义是一个任务,但是这个任务可不一定只是来自一个app,比如我用微信来发一张图片,那么 ...
- Android中@id与@+id区别和sharedUserId属性详解
Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...
- Android中的Activity相关知识总结
一.什么是Activity? 简单理解:Activity是Android组件中最基本也是最为常见用的四大组件之一.是一个与用户交互的系统模块,一个Activity通常就是一个单独的屏幕(页面), 它上 ...
- Android中图片处理相关问题
在Android的开发中,我们经常回去处理一些图片相关的问题,比如当加载图片到内存中产生的OOM(OutOfMemory)异常.图片加载到内存中占多大内存的问题.jpg png两种常见的图片的原理及区 ...
- Android中WebView的相关使用
近期做的项目中,遇到个非常棘手的问题: 客户给我的数据是有限制的,因此,在返回某条详细页面内容的时候,他仅仅能给我一个html片段,里面包括 文字,图片以及附件的下载地址.假设网页模版规范的爱比較好说 ...
- 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)
对于AlertDialog的相关知识: 1.创建构造器AlertDialog.Builder的对象: 2.通过构造器对象调用setTitle.setMessage.setIcon等方法构造对话框 ...
- android中与Adapter相关的控件----ListView
ListView讲解: 一.ListView这个控件是一个使用非常广泛的控件,值得深入的学习和研究.基本使用已经在Adapter中使用过了 二.常用的属性和方法 footerDividersEnabl ...
- android中与Adapter相关的控件----Spinner&AutoCompleteTextView
Spinner(列表选项框) & AutoCompleteTextView(自动完成文本框) 一.列表选项框核心属性 android:dropDownHorizontalOffset设置列表框 ...
随机推荐
- [经验分享]WebAPI中返回类型JsonMessage的应用
这是一个绝无仅有的好类型,一个你爱不释手的好类型,好了,不扯了,直接上干货. 相信大家都知道,在调用接口的时候返回Json数据已经成为一种不成文的标准,因为它的解析快,易读等优秀的特性,所以被绝大多数 ...
- golang社区
a development list for Go Programming Language https://groups.google.com/forum/#!forum/golang-dev a ...
- python自动安装mysql5.7
python自动安装mysql5.7 python版本:python2.6 centos版本:centos6.9 mysql版本:mysql5.7.19 安装目录路径和数据目录路径都是固定,当然也可以 ...
- linux shadowsocket 安装和启动
http://blog.csdn.net/hanshileiai/article/details/49302865
- Head First设计模式之代理模式
一.定义 定义:为其他对象提供一种代理以控制对这个对象的访问 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口. 二.结构 代理模式一般会有三个角色: 抽象角色(Subject):指代 ...
- Head First设计模式之状态模式
一.定义 定义:允许对象在内部状态改变时改变它的行为, 对象看起来好像修改了它的类. 主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为. 何时使用:代码中包含大量 ...
- Heroku登录失败
Heoku 在国内,注册和登录是个大问题,不知道原来怎么注册上了,如今需要登录删除 app 就是删除不了.. 今天努力找了个vpn ,无奈还是登录不成功.https://id.heroku.com/l ...
- iconfont-字体图标
看到支付宝官网,使用很多iconfont-字体图标.素色,纯色,体积小,尝试使用做个demo,以便日后参考使用 ============================ <h1>第一个结构 ...
- 第一章:大数据 の Linux 基础 [更新中]
本课主题 Linux 休系结构图 Linux 系统启动的顺序 Linux 查看内存和 CPU 指令 环境变量加载顺序 Linux 内存结构 Linux 休系结构图 Linux 大致分为三个层次,第一层 ...
- Pyqt4的对话框 -- 预定义对话框
QinputDialog提供了一种获取用户单值数据的简介形式. 它接受的数据有字符串.数字.列表中的一项数据 # QInputDialog 输入对话框 # 本示例包含一个按钮和一个行编辑部件.单击按钮 ...