谈到Activity的启动方式必须要说的是数据结构中的栈。栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶。需要读取数据的时候就需要从顶部开始读取数据,栈具有记忆功能,对栈的操作不需要指针的约束。在Android中Activity的显示其实就是一个入栈和出栈的过程。当打开一个Activity的时候Activity入栈,当关闭一个Activity的时候Activity出栈,用户操作的Activity位于栈顶,一般情况下,一个应用程序对应一个任务栈,当任务栈清空时也就代表应用程序清空了。同时当一个任务栈创建的时候系统就会分配一个int类型的id,当任务栈结束,这个id也就回收。

默认启动方式:standard

系统默认的Activity启动模式,他的读取和栈一样,当调用某个Activity时入栈,撤销时出栈,显示Activity位于栈顶。

顶部唯一任务:singleTop

当某个Activity设置了这种启动模式时,当Activity入栈位于顶部时,若再向Activity入栈(进入一个相同Activity的实例),那么系统会服用栈顶Activity,不会再创建新的Activity入栈。

单一任务:singleTask

当某个Activity设置了这种启动模式,说明这个栈只能允许一个Activity,不允许多个相同Activity。

单一实例:singleInstance

当某个Activity设置了这种启动模式,这种启动模式很特殊,Activity只会进入和自己相同的Activity栈中,不会进入其他的栈,也就是有不止一个任务栈位于一个应用程序中。

对四种启动模式做个总结:

Android中Activity的四种启动方式的更多相关文章

  1. Android中Activity的四种启动模式

    要了解Android的启动模式先要了解一下Activity的管理方式: 1.Activity的管理机制 Android的管理主要是通过Activity栈来进行的.当一个Activity启动时,系统根据 ...

  2. activity 的四种启动方式

    Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standar ...

  3. Android 关于Activity的四种启动模式的简单介绍

    Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standar ...

  4. Android中Activity的四种开发模式

    Activity的四种启动模式:standard.singleTop.singleTask.singleInstance   清单文件中的Activity配置使用:android:launchMode ...

  5. Android中activity的四个启动模式

    activity的四个启动方式分别是standard.singletop.singletask.singleinstance.第一个其实就是只要新打开活动就会新建一个实例.第二个顾名思义返回栈的顶部只 ...

  6. 关于android的Activity的四种启动模式

    最近做项目遇到一个问题,当触摸屏幕的时候通过intent启动activity,发现会启动多次,而后查阅资料,发现,原来是activity的模式设置问题. Activity的启动模式可以通过Androi ...

  7. Android界面组件的四种启动方式

    Android界面组件启动有四种方式 standard,singleTop,singleTask,singleInstance. standard:每次调用都会都会产生新的组件. singletop: ...

  8. Android之Activity的四种启动模式

    当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中.Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activ ...

  9. Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。

    原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模 ...

随机推荐

  1. ubuntu技巧

    在终端界面里面查找,命令:ctrl + shift +f VMware 中 Ubuntu 不能全屏: 转到虚拟机-->安装VMware Tools 把装载的 VMware Tools CD里面的 ...

  2. bzoj 5120 [2017国家集训队测试]无限之环——网络流

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5120 旋转的话相当于去掉一个插头.新增一个插头,所以在这两个插头之间连边并带上费用即可. 网 ...

  3. c# 数据库通用类DbUtility

    DbProviderType数据库类型枚举 /// <summary> /// 数据库类型枚举 /// </summary> public enum DbProviderTyp ...

  4. RK3288 USB UVC camera 摄像头 VIDIOC_DQBUF Failed!!! err[I/O error]

    RK3288     Android5.1   多个品牌USB摄像头 同一块主板和代码,大部分品牌的USB摄像头可以正常使用,只有某一款USB摄像头不能使用. 插上摄像头,底层可以识别到摄像头. &l ...

  5. Google Cloud IAM中添加自定义域名

    Google Cloud支持在IAM中加入自定义域名.具体方法如下: 1. 登录Google Cloud Console,点击IAM和管理,进入身份和组织 2. 点击注册 3. 会重定向到Gmail到 ...

  6. erlang的lists笔记

    一般循环用在遍历列表的时候,erlang有lists模块直接支持遍历,不需要自己写尾递归遍历list lists:foreach 用来遍历列表,不保存结果,最后一次返回ok lists:map 遍历列 ...

  7. MySQL的Query Cache原理分析

    QueryCache(下面简称QC)是根据SQL语句来cache的.一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使用QC.每个Cache都是以SQL文本作为key来存的. 原理 ...

  8. Python库-BeautifulSoup

    sp = BeautifulSoup.bs4.BeautifulSoup(html.text,"html.parser") 方法 1.sp.title 返回网页标题 2.sp.te ...

  9. (转)Inno Setup入门(十三)——Pascal脚本(2)

    本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250933 事件函数(2) function CheckPassw ...

  10. CSS各浏览器HACK

    /*firefox*/@-moz-document url-prefix(){.mainNews div.l ul{padding-bottom:12px}} /*ie6*/{_padding:2px ...