Task和BackTask

一、总结性知识点:

    1、Android应用运行时会创建任务Task,用于存放主窗口
    2、每一个任务包含一个堆栈数据结构,用于保存当前应用已创建的窗口对象,这个堆栈即回退栈BackStack
    3、 位于回退栈顶的窗口会处于焦点状态

    4、 窗口的显示与关闭即是入栈与出栈的过程

二、详细描述
    (一)、任务Task:
    1、概念:
        一个任务(task)就是在执行某项工作时与用户进行交互的Activity的集合。这些Activity按照被打开的顺序依次被安排在一个堆栈中(回退栈)。
    2、主屏页面:
        设备的主屏是大多数任务的启动位置,当用户触摸一个应用程序启动器图标(或者app快捷图标),应用程序的任务就会在前台显示。如果相关应用程序的任务不存在,那么就会有一个新的任务被创建,并且应用程序打开的“主”Activity会作为任务中的根Activity。
    (二)、回退栈:
    1、概念:
        在当前的Activity启动了另一个Activity时,这个新的Activity被放到了堆栈的顶部,并且带有焦点。
        前一个Activity并没有消失,而是保存在回退栈中,此时它处于停止状态。
        当用户按下回退按钮时,当前的Activity会被从回退栈的顶部弹出(这个Activity被销毁),而前一个Activity被恢复。堆栈中的Activity不会被重新排列。因此,回退栈的操作跟后进先出的对象结构是一样的。
        在用户按下回退按钮时,当前Activity被销毁,并且前一个Activity被恢复。如果用户继续按回退按钮,那么回退栈中的每个Activity会被依次弹出,前一个Activity会被显示,直到用户返回主屏(或者返回到任务开始时运行的那个Activity)。当所有的Activity从回退栈中被删除时,这个任务就不再存在了。
    (三)、Activity和Task的默认行为的总结:
    1、当Activity A启动Activity B时,ActivityA被终止,但是系统保留了它的状态(如滚动条的位置和录入表单的文本)。如果用户在Activity B中按回退按钮,Activity A会使用被保存的状态来进行恢复。
    2、当用户通过按主页(Home)按钮离开一个任务时,当前的Activity会被终止,并且被放入后台。系统会保留任务中每个Activity的状态。如果用户随后通过选择启动图标来恢复这个任务,那么任务会来到前台,并且恢复了堆栈顶部的Activity。
    3、如果用户按下回退按钮,当前的Activity会从堆栈中被弹出并且被销毁。堆栈中的前一个Activity会被恢复。Activity被销毁时,系统不会保留Activity的状态。
    4、Activity能够被实例化多次,甚至来自其他任务。 
三、压栈和弹栈 (一个任务中多窗口显示与关闭)

转载于:https://www.cnblogs.com/android-blogs/p/5690823.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题二

1、public、private、protected、Friendly的区别与作用域 public,protected,friendly,private的访问权限如下: 关键字 当前类 包内 子孙类 包外 public √ √ √ √ protected…

使用Spring Roo进行快速云开发–第1部分:Google App Engine(GAE)

Spring Roo是在Java平台上提供快速应用程序开发的工具。 我已经解释了何时使用它: http : //www.kai-waehner.de/blog/2011/04/05/when-to-use-spring-roo 。 Spring Roo目前支持两种针对云计算的解决方案:Google App Engine(GAE)…

mysql 重装,Windows系统中完全卸载MySQL数据库实现重装mysql

一、在控制面板,卸载MySQL的所有组件控制面板——》所有控制面板项——》程序和功能,卸载所有和MySQL有关的程序二、找到你的MysQL安装路径,看还有没有和MySQL有关的文件夹,全删如果安装在C盘,检查一下C:\Program File…

loadrunner 关联

1、记住关联的位置(之前),因为登录之前需要token,才能验证登录是否成功,所以,放在登录之前 转载于:https://www.cnblogs.com/zyp1/p/5692343.html

网页上线后音频不能自动播放

一、问题描述 开发环境谷歌浏览器本地测试通过,网站上线后的音乐不播放,而是自动下载? 开发环境safari浏览器中,音频不播放。 二、问题分析 用audio或者embed标签都有问题,为了节省用户的流量,安卓和ios都默…

Akka STM –与STM Ref和Agent进行乒乓球比赛

乒乓是一个经典示例,其中2个玩家(或线程)访问共享资源–乒乓球桌并在彼此之间传递Ball(状态变量)。 使用任何共享资源,除非我们同步访问,否则线程可能会遇到潜在的死锁情况。 PingPong算法非常简…

c mysql二进制,MySQL运用connector C/C+读取二进制字段

MySQL使用connector C/C读取二进制字段MySQL使用connector C/C读取二进制字段,两种方法:用getStringvector vec;while (pResultSet->next()){string str pResultSet->getString("data");vec.insert(vec.end(), str.begin(), str.end())…

在下一个项目中不使用JavaDoc的5大原因

JavaDoc对于框架和库的开发是绝对必要的,这些框架和库为其他框架(例如Spring Framework,JDK)提供了公共接口。 对于内部企业软件和/或产品开发,我有以下原因会在将来忽略“ 100%JavaDoc策略”。 1&#xff…

NPOI操作Excel辅助类

/// <summary> /// NPOI操作excel辅助类 /// </summary> public static class NPOIHelper {#region 定义与初始化public static HSSFWorkbook workbook;[Flags]public enum LinkType{网址,档案,邮件,内容};private static void InitializeWorkbook(){if (workbook …

JSP九大内置对象,七大动作,三大指令

JSP之九大内置对象 隐藏对象入门探索 Servlet 和JSP中输出数据都需要使用out对象。Servlet 中的out对象是通过getWriter()方法获取的。而JSP中没有定义out对象却可以直接使用。这是因为out是JSO的内置隐藏对象。JSP中的常见的9个内置隐藏对象如下 out输出流对象 隐藏对象out是…

matlab变步长的梯形公式,用变步长梯形法计算积分∫sinx/x*x的近似值(二分二次即可)...

共回答了20个问题采纳率&#xff1a;90%题目没写全吧?现假定积分区间为[0,1],教材《数值分析》(华中科技大学出版)第87页,例题4.2就有详细的解答.貌似题目也有错?确定分母是【x^2】?现在附上该例题(分母是x)的全部解答过程&#xff1a;先对整个区间[0,1]使用梯形公式.对于函…

使用Cloud SQL的Google App Engine全文搜索

许多Google AppEngine开发人员一直在等待全文搜索功能&#xff0c;特别是来自网络上最大的搜索引擎Google。 很高兴看到Google团队正在努力&#xff0c;您可以在Google I / O 2011大会上签到&#xff1a; Bo Majewski和Ged Ellis进行的全文本搜索 。 据我所知&#xff0c;非常有…

php 数组值sum,php sum数组值(如果特定列的值重复)

我有一个阵列。我要检查是否有重复的费用,如果有,我要用相同的费用列汇总所有值。[12] > Array([type] > Other Miscellaneous Fees[fee] > 158[amount] > -22.56[code] > COL_AUDIO[feedesc] > COLLEGE AUDIO VISUAL FEE)[13] > Array([type] > Other…

hdu-5734 Acperience(数学)

题目链接&#xff1a; Acperience Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem DescriptionDeep neural networks (DNN) have shown significant improvements in several application domains including computer vision and…

Ninject依赖注入(一)

Ninject学习笔记&#xff08;一&#xff09; Ninject学习笔记&#xff08;一&#xff09;理解依赖注入DI概念什么是DI&#xff1f;DI是如何工作的&#xff1f;什么是DI容器使用Ninject如何使用NinjectNinject对象生命周期暂时范围单例范围线程范围请求范围自定义范围Ninject模块…

我如何向团队解释依赖注入

最近&#xff0c;我们公司开始开发基于Java的新Web应用程序&#xff0c;经过一些评估过程&#xff0c;我们决定使用Spring。 但是许多团队成员并不了解Spring和Dependency Injection的原理。 因此&#xff0c;我被要求给出一个速成班&#xff0c;介绍什么是Spring上的依赖注入和…

可以添加自定义的Select控件

1.控件dom <select name"WebSiteTarget" id"WebSiteTarget" class"w1" onchange"editable2(this);"><option value"-1">请选择城市</option><option>福州</option><option>厦门</op…

innodb_io_capacity =innodb_lru_scan_depth*inoodb_buffer_pool_instances。与 checkpoint

innodb_lru_scan_depth:每个缓冲池刷脏页的能力 innodb_io_capacity: iops inoodb_buffer_pool_instances8 :缓冲池的个数 .关系&#xff1a; innodb_io_capacity > innodb_lru_scan_depth * inoodb_buffer_pool_instances 转载于:https://www.cnblogs.com/zengkefu/…

Java中的责任链模式

当应有几个处理器来执行某项操作并为这些处理器定义特定顺序时&#xff0c;就需要采用责任链设计模式。 在运行时处理器顺序的可变性也很重要。模式的UML表示如下&#xff1a; 处理程序定义处理器对象的一般结构。 这里的“ HandleRequest”是抽象处理器方法。 处理程序还具有自…

php的excel源码下载,PHPExcel-5 - 源码下载|Windows编程|其他小程序|源代码 - 源码中国...

文件名大小更新时间PHPExcel02019-05-11PHPExcel\.gitattributes702019-01-02PHPExcel\.gitignore1082019-01-02PHPExcel\.travis.yml5122019-01-02PHPExcel\16329.xlsx510662019-05-11PHPExcel\19093.xlsx511932019-05-11PHPExcel\43877.xlsx530952019-05-11PHPExcel\62045.xl…