1.Tasks and Back Stack

1.1. 当点击Back按钮返回到上一个Activity时发生了什么?

后进-先出原则

1.2. 点击HOME按钮

当点击HOME按钮的时候,原activity停止,但是整个activity依然完整,用户返回这个task的时候,依然保持用户离开时的样子

1.3.多次点击进入Activity-Back按钮

  • Activtiy会被多次实例化--我们可以避免它

2.管理任务

  • 一般情况下任务都遵循后进-先出的原则,无特殊情况不需要去更改它
  • 但是有时候可能遇到下面的情况:
    • 希望在现Activity中启动新的Task(从当前app跳到另外一个app)
    • 不希望activity被多次实例化
    • 明确back stack的activity
  • 怎么做?
    • AndroidManifest.xml中的<activity>添加属性

      • taskAffinity
      • launchMode
      • allowTaskReparenting
      • clearTaskOnLaunch
      • alwaysRetainTaskState
      • finishOnTaskLaunch
    • startActivity()之前的Intent中添加参数
      • FLAG_ACTIVITY_NEW_TASK
      • FLAG_ACTIVITY_CLEAR_TOP
      • FLAG_ACTIVITY_SINGLE_TOP

    2.1. 定义启动模式

    定义新的Activity与当前的Task如何关联

    (1).method1: 在mainifest中声明

属性 模式 含义
`launchMode` `standard(default)` activity可以创建多次,每个task可以含有多个实例(A-B-C: A-B-C-C)
`singleTop` 当activity在top时,不会创建新实例(A-B-C: A-B-C)(A-B-C: A-B-C-B)
`singleTask` 创建新的Task和实例化activity,但是如果activity之前已经存在,不会实例化
`singleInstance` 上同

### (2).method2: 在Intent flag中声明

flas 含义 与method1匹配
FLAG_ACTIVITY_NEW_TASK 在新的Task中开启Activit,如果这个task已经存在,直接将他调用到前端 singleTask
FLAG_ACTIVITY_SINGLE_TOP 如果在当前activity中再次开启当前activity,直接调用onNewIntent()方法,不会创建新实例 singleTop
FLAG_ACTIVITY_CLEAR_TOP 如果将要开启的actiivty存在于当前task中,直接销毁task中该activity之前的所有activity
然后调用onNewIntent()方法,不会创建新实例
----

Android Studio教程04-Task和Back stack的更多相关文章

  1. Android studio教程

    Android studio教程: http://jingyan.baidu.com/season/44062

  2. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...

  3. Android Studio教程01-的工程和目录结构解析

    目录 1.主目录 1.1. app目录 1.2.项目资源文件夹res 2. 理解build.gradle文件 2.1. 外部build.gradle 2.2. app文件下的build.gradle ...

  4. Android Studio教程-创建第一个项目Hello World

    前段时间打开Android studio 在build过程中总会出现以下错误 Error:Execution failed for task ':app:preDebugAndroidTestBuil ...

  5. Ubuntu1404配置jdk-12.0.2并安装Android Studio教程

    最近在学习Android Studio 移动应用程序开发,但Android Studio好像对win10不太友好,所以小帅想在Ubuntu上安装Android Studio.为此小帅还去网上找了相关教 ...

  6. Android Studio 教程

    Android Studio 超详细安装教程 http://dkylin.com/archives/2019/android-studio-installation.html Android Stud ...

  7. Android Studio教程--给Android Studio安装Genymotion插件

    打开Android Studio,依次[File]-[Settings] 在打开的settings界面里找到plugins设置项,点击右侧的“Browser..”按钮 在搜索栏里输入genymotio ...

  8. Android Studio教程--Android Studio 2.1安装与配置

    1.下载Android Studio 去官网https://developer.android.com/studio/index.html下载最新版的Android Studio2.1(自备梯子) 或 ...

  9. Mac下载安装Android Studio教程

    今天把公司闲置的一台Mac-mini重装了下系统感觉用着速度还不错,平时上班用的机器USB有些问题,所以打算用这台Mac.以往开发用Intellij Idea就够用,但是这次项目引用的jar包太多,遭 ...

  10. Android studio教程:[6]创建多个Activity

    通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面.于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Acti ...

随机推荐

  1. SpringBoot从零单排 ------初级入门篇

    有人说SSM已死,未来是SpringBoot和SpringCloud的天下,这个观点可能有点极端,但不可否认的是已经越来越多的公司开始使用SpringBoot.所以我将平时学习SpringBoot的内 ...

  2. ajax调用WebAPI添加数据

    //获取账号名 var Name = document.getElementById("Text1").value;//获取密码 var Pass = document.getEl ...

  3. .Net Project 常规结构

    目录:一个.NET网站的成长历程 在个人的日常工作和学习中,接触到不少的项目,这些项目结构大同小异,其结构的核心思想无外乎“分层“. 分层?从字面上理解,看似简单,实则不然.这需要从多个维度去看待这个 ...

  4. css实现发光文字,以及一点点js特效

    效果图: 代码如下: </head> <style> body{ background-color:#000; } .textArea{ font-size:100px; co ...

  5. MPP-使用说明

    1.介绍 MPP是瑞芯微提供的媒体处理软件平台,适用于瑞芯微芯片系列.它屏蔽了有关芯片的复杂底层处理,屏蔽了不同芯片的差异,为使用者提供了统一的视频媒体统一接口. 具体提供的功能: 视频编码:H264 ...

  6. grep 及正则表达式

    grpe 及正则表达式 文本查找的需要:grep,egrep,fgrepgrep: 根据模式,搜索文本,并将符合模式的文本行显示出来.Pattern : 文本字符以及正则表达式的元字符组合而成的匹配条 ...

  7. http-server安装及运行

    vue项目打包后会生成一个dist目录,我们想要直接运行dist目录...除了复制静态文件到服务器nginx目录下,然后启动nginx来启动项目, 另外一个办法就是安装http-server 直接启动 ...

  8. Linux 开启和关闭 Ping 操作

    Linux 默认是开启 ping 操作的,通过以下两种方式可以开启和关闭 ping 操作 . 1.修改内核参数 通过内核参数设置也有两种方式,一种是临时修改,一种是永久修改. 1.1 临时设置 PIN ...

  9. eggjs 框架代理调试 SELF_SIGNED_CERT_IN_CHAIN 报错解决方案

    eggjs 中的 this.ctx.curl 可以发起一个请求,配置 proxy 可以很方面的通过接口进行问题定位.代理方式如下: 1.开启 egg-development-proxyagent ,配 ...

  10. 49个Spring经典面试题总结,附带答案,赶紧收藏

    1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年.这是第一个支持注解的版本. Spr ...