Activity加载模式
standard:
标准模式,一调用startActivity()方法就会产生一个新的实例。 对于每一个启动Intent都会生成一个activity的新实例.
跳转源和目的activity为同一个taskid

singleTop:
当activity被设置为singleTop的加载模式时,如果堆栈的顶部已经存在了该Activity,
那么,它便不会重新创建,而是调用onNewIntent。如果,该Activity存在,但不是在顶部,那么该Activity依然要重新创建.
跳转源和目的activity为同一个taskid

singleInstance:
设置为该模式的activity将独立创建一个 task,并且独享该taskid.
其所在栈的唯一activity,它会每次都被重用。其它activity不能存在那个task里.
当发现已经存在一个Task中包含自己的实例时,它会调用自己的onNewIntent。
eg: a(taskid=1)->b(sinleInstance,taskid=2)-->c(taskid=1)
如果a在跳转到b后自己调用了finish()方法,则c的taskid=3
跳转源和目的activity的taskid一定不相同

singleTask:
eg: a(taskid=1)->b(singleTask,taskid=1)
设置为singleTask模式的activity并不一定总是新开一个taskid.
当它不是app的启动面时,将和启动面taskid相同.
但是将非启动面设置为该模式要注意数据丢失问题.
因为很有可能是a为欢迎页面,初始化等耗时工作完成后调用b.并自宫a(finish方法)
这时候当系统回收内存后,在home面重新进入程序的时候,a中被初始化的数据将丢失.
因为a已经被自宫,导致初始化数据丢失.
当singleTask模式的Activity启动时,如果发现在某个Task中已经存在,那么它会先将该它上部的销毁,然后调用它的onNewIntent函数。

Activity状态:
活动的:
当一个Activity在栈顶,它是可视的、有焦点、可接受用户输入的。Android试图尽最大可能保持它活动状态,杀死其它Activity来确保当前活动Activity有足够的资源可使用。
当另外一个Activity被激活,这个将会被暂停。

暂停:
在很多情况下,你的Activity可视但是它没有焦点,换句话说它被暂停了。有可能原因是一个透明或者非全屏的Activity被激活。
当被暂停,一个Activity仍会当成活动状态,只不过是不可以接受用户输入。
在极特殊的情况下,Android将会杀死一个暂停的Activity来为活动的Activity提供充足的资源。
当一个Activity变为完全隐藏,它将会变成停止。"

停止:
当一个Activity不是可视的,它“停止”了。
这个Activity将仍然在内存中保存它所有的状态和会员信息。尽管如此,当其它地方需要内存时,它将是最有可能被释放资源的。
当一个Activity停止后,一个很重要的步骤是要保存数据和当前UI状态。一旦一个Activity退出或关闭了,它将变为待用状态。

待用:
在一个Activity被杀死后和被装载前,它是待用状态的。待用Acitivity被移除Activity栈,并且需要在显示和可用之前重新启动它。

Intent:
Activity的加载模式受启动Activity的Intent对象中设置的Flag和manifest文件中Activity的元素的特性值交互控制。

FLAG_ACTIVITY_REORDER_TO_FRONT
如果这个activity已经启动了,就不产生新的activity,而只是把这个activity实例加到栈顶来就可以了。

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP

android:taskAffinity

android启动模式相关推荐

  1. Android 启动模式简介

    2019独角兽企业重金招聘Python工程师标准>>> 预备知识 启动模式 standard模式(默认):只要创建了Activity实例,一旦激活该Activity,则会向任务栈中加 ...

  2. Android启动模式详解

    "在整理完启动模式后,我发现大家对启动模式的理解是有误区的" 引言 再谈启动模式,貌似没啥意思.但是你能正确回答下面的问题吗? 问题1:singleTask启动模式,在启动新的Ac ...

  3. android 启动模式_安卓学习笔记之Android中Activity的4种启动模式

    根据Activity在任务栈中的调用方式不同,Activity的启动模式分为4种,分别是Standard.SingleTop.SingleTask以及SingleInstance.可以在Android ...

  4. android任务栈的作用,Android 启动模式以及任务栈

    1.Android 主要包含4种启动模式,下面分别介绍四种启动方式的特点: 1)tandard 默认的启动模式,标准模式 每开启一个Activity,就会在栈顶添加一个Activity实例.多次间隔或 ...

  5. android singleinstance home,Android启动模式之singleinstance的坑

    前言 在实际应用中,使用singleinstance启动模式时,会遇到一些奇奇怪怪的问题.Android有四种启动模式,分别是standard,singleTop,singleTask,singleI ...

  6. Android启动模式SingleInstance

    1.简介 Android四大启动模式分别为Standard,SingleTop,SingleTask,SingleInstance,其中前面三种平时使用的比较多此处不多做解析,重点分析下SingleI ...

  7. Android启动模式介绍

    安卓Android一般有Meta.Normal.Bootloader.Recovery.Factory等启动模式,这些模式都需要在系统启动时通过按键等方式触发进入,除了Normal模式,其它模式都属于 ...

  8. Android 源码分析 Activity的启动模式

    一直想抽空针对AMS进行源码分析,无奈一方面因为很忙,另外AMS很复杂,涉及的知识点也比较多,今天利用五一假期对AMS的一个方面,Activity的启动模式进行源码分析,这里面包括了ActivityR ...

  9. Android四大组件和启动模式(面试总结)

    一.Android四大组件详解 Android四大组件分别为Activity.Service.Content Provider.Broadcast Receiver. 1.Activity (1)一个 ...

最新文章

  1. Hadoop学习笔记—7.计数器与自定义计数器
  2. java 协程_你真的了解kotlin的协程么?
  3. kali linux下安装TOR
  4. Chipscope使用
  5. xjc java_xjc命令转换成java类乱码
  6. 纯新手入门机器/深度学习自学指南(附一个月速成方案)
  7. 【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
  8. Mvc 翻页查询,代码很有用
  9. Python连接SQLite
  10. Java笔记1(2015-8-30)
  11. 批量保存打开的网页到本地
  12. STCMCU各系列里程碑的进化
  13. nodejs+vue+elementui企业考勤管理系统
  14. HEX BIN互相转换
  15. 四、六级考试的标准分计算方法-“710分转换表”
  16. 心理压力测试软件,心理压力测试
  17. 镜像电流源特点_镜像电流源原理及其应用电路.pdf
  18. 搜狗浏览器安装自定义JS脚本的方法~
  19. JWT 生成Token、解析Token的简单工具类
  20. 开根号向下取整代码实现

热门文章

  1. 简单理解 unix (liunx)inode
  2. Spring MVC 接收json自动转换JSONObject
  3. 如何最快的获取QQ群所有成员的qq号信息
  4. Memcache监控工具 -- memkeys
  5. 小端法、大端法、网络字节转序
  6. error: creating array of references( declaration of 'a' as array)
  7. IE 6和IE 7对于按钮背景图案的处理 【转载】
  8. SharePoint 2007 权限代码分享
  9. ExtJS2.0实用简明教程 - Form布局
  10. GC之Minor/Young/Major GC的区别