之前自学android的时候,单从视频和书本上对这四种启动模式仅仅有了初步的字面上的理解。最近实战了下,也对这四种启动模式有了比较清晰的概念。

首先说下什么是Activity,按照我的理解,我们在手机上看到的每一个页面都是一个Activity,包括系统的桌面,也是一个Activity。

要启动一个Activity有四种模式:standard(标准启动模式)、singleTop、singleTask、singleInstance。

注: Aty1_1和Aty2_1为两个不同的Activity,Aty1_1和Aty1_2为同一个Activity中的不同实例。

1. standard

不同的Activity在同一个栈中,

每次创建新实例的时候,新实例便会堆放到栈顶。

当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。

2. singleTop

不同的Activity在同一个栈中。

① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。

② 如果Aty_1不在栈顶,此时再创建一个Aty1的实例,会产生一个新的Aty1实例到栈顶。

当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。

3. singleTask

不同的Activity在同一个栈中。

① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。

② 如果Aty_1不在栈顶,此时再创建一个Aty1的实例,页面会返回到任务栈中存在的Aty1的实例,并将Aty1上面所有的实例移出栈。

当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。

4. singleInstance

不同的Activity 处于不同栈中

① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。

② 如果此时Aty2的实例还未被创建,则创建的Aty2的实例时会存放到一个新的任务栈中。

③ 如果此时Aty1的实例已存在且我们在Aty2的页面中创建新的Aty1实例时,则不会创建新的Aty1实例,而是页面跳转到原来任务栈中存在的Aty1的实例,但存放Aty2实例的任务栈仍然存在

当点返回键的时候,便会依次销毁相应的任务栈,直至任务栈数为空则退回到系统桌面。

standard、singleTop、singleTask和singleInstance四种Activity启动模式的理解相关推荐

  1. activity的四种加载模式

    在android里,有4种activity的启动模式,分别为: standard, singleTop, singleTask和singleInstance, 其中standard和singleTop ...

  2. 虚拟机四种网络连接模式比较

    虚拟机一直用,但选择网络时的四种模式总是搞不清楚,只知道选择bridge最好用.为了能更深入了了解,查询了些资料,总结如下 第一种 NAT模式 Vhost访问网络的所有数据都是由主机提供的,vhost ...

  3. Android Activity启动模式,回退栈管理!

    (一): Activity被回收了怎么办?当系统内存不足的时候Activity是有可能被回收的,打个比方用户在A Activity启动了B Activity那么A就处于停止状态,由于内存不足A会被回收 ...

  4. Android系统(187)---最易懂的Activity启动模式详解

    Android基础:最易懂的Activity启动模式详解 前言 Android基础中,Activity的启动模式非常重要 本文将全面介绍 Activity的启动模式 目录 目录 1. 定义 即Acti ...

  5. Activity启动模式和FLAG、TASKAFFINITY

    Activity的任务栈Task以及启动模式与Intent的Flag详解 转载至 http://www.jianshu.com/p/c1386015856a 什么是任务栈(Task) 官方文档是这么解 ...

  6. (二)Activity启动模式

    启动模式 一.概念 顾名思义,就是activity的启动方式方法,共有4种模式standard,singleTop,singleTask,singleInstance. 为什么要学习启动模式呢?因为有 ...

  7. Android四种Activity的加载模式(转)

    建议首先阅读下面两篇文章,这样才可以更好的理解Activity的加载模式: Android的进程,线程模型: http://www.cnblogs.com/ghj1976/archive/2011/0 ...

  8. 区分Activity的四种加载模式

    在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity. ...

  9. 区分Activity的四种加载模式(转)

    转自:http://marshal.easymorse.com/archives/2950 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activi ...

最新文章

  1. php透明颜色的代码,PHP 透明水印生成代码参考
  2. Android之ProgressBar读取文件进度解析
  3. 【VSTO】Office开发中遇到的兼容性检查问题
  4. 1.16 24点游戏
  5. 计算书费(信息学奥赛一本通-T1104)
  6. apache开源项目 -- tajo
  7. tcp协议seq和ack
  8. 脚本文档_创建完美的架构文档脚本
  9. 支付宝集成——如何在回调地址中使用自定义参数
  10. Atitit 局部图查找大图 方法 与 说明
  11. 线程上下文类加载器(Thread Context ClassLoader)
  12. python 美化ppt_python操作PPT------PPT内容样式调整
  13. 【系统分析师之路】原创章节 非功能需求设计思维导图
  14. 如何删除SceneDelegate
  15. 2019.04流量副卡方案对比 - (日租卡类)月租在20元以下的
  16. android转ios 王者荣耀,王者荣耀怎么转移号
  17. 重构改善代码--代码的坏味道
  18. C++:char数组初始化
  19. iOS Tagged Pointer
  20. 1.海思项目整理 编译烧录+启动参数+sample编译+bayeRGBYUV+MPP(VB+VI+VPSS)

热门文章

  1. 百度贴吧发贴回贴POST接口
  2. 国威赛纳程控交换机超级密码
  3. 每日一题——乌托邦树
  4. 多人配音播报软件哪个好?
  5. Linux发行版在嵌入式设备上的未来
  6. 分布式文件存储系统不得不说的灵动元数据服务
  7. 大疆无人机-guidance妙算模块简介
  8. packettracer
  9. python开发app需要多久_python数据库开发app
  10. js---一个叹号和两个叹号的区别