zoukankan      html  css  js  c++  java
  • Android教程 -07 Activity的任务栈和启动模式

    Activity是由任务栈管理的,一般情况下一个应用程序只有一个任务栈。

    什么是栈?

    栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西
    这里写图片描述

    栈的特点就是先进后出,与栈截然相反的是队列,队列的特点是先进先出。

    Activity就是采用栈结构进行管理的,先打开的Activity是最后退出的。

    1. 一个应用程序一被开启系统就给他分配一个任务栈,当所有的activity都退出的时候,任务栈就清空了。
    2. 任务栈的id是一个integer的数据类型 自增长的。
    3. 在android操作系统里面会存在多个任务栈,一般一个应用程序对应一个任务栈。
    4. 桌面应用和一般的应用程序是一样的,任务栈的行为也是一样。
    5. 默认情况下, 关闭掉一个应用程序,清空了这个应用程序的任务栈。应用程序的进程还会保留。

    Activity启动模式

    Android系统中的Activity可以说一件很赞的设计,它在内存管理上良好的设计,使得多任务管理在Android系统中运行游刃有余。但是Activity绝非启动展示在屏幕而已,其启动方式也大有学问,本文讲具体介绍Activity的启动模式的诸多细节,纠正一些开发中可能错误的观点,帮助大家深入理解Activity。

    Activity有四种启动模式, 我们一般采用默认的启动模式,如果使用其它的启动模式? 非常简单只需要在清单文件Activity节点下做如下配置就可以了:

          <activity android:name=".task.Task2Activity"
               android:label="task2"
               android:launchMode="singleInstance"
               >
           </activity>

    四种启动模式分别为:

    standard

    默认标准的启动模式,每次startActivity都是创建一个新的activity的实例。适用于绝大大数情况

    singleTop

    单一顶部,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例,而是调用 onNewIntent() 方法。

    singletask

    单一任务栈 , activity只会在任务栈里面存在一个实例。如果要激活的activity在务栈里面已经存在,就不会创建新的activity,而是复用这个已经存在的activity,调用 onNewIntent() 方法,并且清空当前activity任务栈上面所有的activity

    singleInstance

    Activity在单独的任务栈中,单一实例,整个手机操作系统里面只有一个实例存在。

    博客对于新手来说看起来可能比较费劲,如果大家不明白的话,可以参考视频
    视频为本篇播客知识点讲解,建议采用超清模式观看, 欢迎点击订阅我的优酷

    视频1 任务栈

    视频2 启动模式

  • 相关阅读:
    git连接远程分支
    如何找N个数中第i小的数
    DeconvNet
    深度学习中的Internal Convariate Shift (ICS)
    BA算法解决p-中位问题
    蚁群算法
    蝙蝠算法初探
    轨迹压缩之Douglas-Peucker算法之C++实现
    遗传算法---编程小试
    NYOJ 1000
  • 原文地址:https://www.cnblogs.com/hehe520/p/6329909.html
Copyright © 2011-2022 走看看