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相关的几个属性的更多相关文章

  1. Android中关于Task的一些认识

    Android中Task是一个逻辑上的概念,简单地说,就是一个栈里面顺序存储着的多个Activity.这些Activity能够是来自同一个App,也能够是来自不同的Apps. Task的创建 比方之前 ...

  2. Android中的task和stack

    今天在重新理了一遍intent的过程中发现task是一个神奇的东西,而它又和stack有着很深的联系.task顾名思义是一个任务,但是这个任务可不一定只是来自一个app,比如我用微信来发一张图片,那么 ...

  3. Android中@id与@+id区别和sharedUserId属性详解

    Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...

  4. Android中的Activity相关知识总结

    一.什么是Activity? 简单理解:Activity是Android组件中最基本也是最为常见用的四大组件之一.是一个与用户交互的系统模块,一个Activity通常就是一个单独的屏幕(页面), 它上 ...

  5. Android中图片处理相关问题

    在Android的开发中,我们经常回去处理一些图片相关的问题,比如当加载图片到内存中产生的OOM(OutOfMemory)异常.图片加载到内存中占多大内存的问题.jpg png两种常见的图片的原理及区 ...

  6. Android中WebView的相关使用

    近期做的项目中,遇到个非常棘手的问题: 客户给我的数据是有限制的,因此,在返回某条详细页面内容的时候,他仅仅能给我一个html片段,里面包括 文字,图片以及附件的下载地址.假设网页模版规范的爱比較好说 ...

  7. 家庭记账本app进度之android中AlertDialog的相关应用以及对日期时间的相关操作(应用alertdialog使用的谈话框)

    对于AlertDialog的相关知识: 1.创建构造器AlertDialog.Builder的对象:    2.通过构造器对象调用setTitle.setMessage.setIcon等方法构造对话框 ...

  8. android中与Adapter相关的控件----ListView

    ListView讲解: 一.ListView这个控件是一个使用非常广泛的控件,值得深入的学习和研究.基本使用已经在Adapter中使用过了 二.常用的属性和方法 footerDividersEnabl ...

  9. android中与Adapter相关的控件----Spinner&AutoCompleteTextView

    Spinner(列表选项框) & AutoCompleteTextView(自动完成文本框) 一.列表选项框核心属性 android:dropDownHorizontalOffset设置列表框 ...

随机推荐

  1. 基于阿里云的MQTT远程控制

    好久没有写博客了,眼看自己的项目就要快做完了,先分享一下基于MQTT的远程控制,自己买了一个阿里的云端,然后在云端上安装了一个MQTT服务器,其实是一不小心买了两个,所以准备贡献出来一个供大家使用, ...

  2. 简单工厂(Simple Factory),最合适的设计模式首秀.

    简单工厂又称为静态工厂方法(static factory method)模式,简单工厂是由一个工厂来决定创建出哪一种个体的实现,在很多的讨论中,简单工厂做为工厂方法模式(Factory Method) ...

  3. Golang丰富的I/O 二----cgo版Hello World

    h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; te ...

  4. 正确使用volatile场景--状态标志

    同步机制:volatile 特点:可见性:不具备原子性 每个线程有自己单独的内存:如果线程1和线程2公用一个变量name:如果两个线程并发进行,并且需要访问变量name:如果这个变量具有了可见性,线程 ...

  5. C# Log4net记录日志

    前言 1.需求 需求很简单,就是在C#开发中高速写日志.比如在高并发,高流量的地方需要写日志.我们知道程序在操作磁盘时是比较耗时的,所以我们把日志写到磁盘上会有一定的时间耗在上面,这些并不是我们想看到 ...

  6. SQL SERVER 日期转换大全

    博客转自:http://blog.csdn.net/baiduandxunlei/article/details/9180075 CONVERT(data_type,expression[,style ...

  7. 轻量级弹出框 lightbox

    1. 引入  lightbox.css 和 lightbox.js 2.检查 CSS 并确定调用的 prev.gif 和 next.gif 文件在正确的位置. 同样要确定调用的 loading.gif ...

  8. Scala 简介

    Scala 特性 面向对象特性 Scala是一种纯面向对象的语言,每个值都是对象.对象的数据类型以及行为由类和特质描述. 类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制.这 ...

  9. [转]Wing IDE 6.0 安装及算号器注册机代码

    下载安装wing 选择第三个,运行算号器,输入license id 输入request id. Python 2 算号器注册机代码 import string import random import ...

  10. 自学Aruba2.3-Aruba Web UI --Configuration面板介绍

    点击返回:自学Aruba之路 自学Aruba2.3-Aruba Web UI --Configuration面板介绍 此文只展示重要面板,大部分通俗易懂就不过多语言介绍, 后期配置实例中再结合理论知识 ...