继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Task和BackTask

开满天机
关注TA
已关注
手记 94
粉丝 74
获赞 262

一、总结性知识点:

    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能够被实例化多次,甚至来自其他任务。 

三、压栈和弹栈 (一个任务中多窗口显示与关闭)

spacer.gif

 

原文链接:http://www.apkbus.com/blog-815579-61157.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP