task和back stack(任务和回退栈)

任务启动,task被加入到回退栈的栈顶,返回的时候回退栈的栈顶任务会被弹出,并被销毁,栈中的前一任务恢复运行,当activity销毁是,系统不会保留activity的状态。

当activity被paused 或者stopped时activity的状态可以保存,

Activity四种启动模式

在注册文件Activity标签中使用launchMode添加模式,默认模式为standrad

1.standrad

调用新的 activity activity1 进栈

调用新的 activity activity2 进栈

调用新的activity  activity3 进栈

按返回键 activity3 出栈

按返回键 activity2 出栈

按返回键 activity1 出栈

2.singleTop

如果在任务的栈顶正好存在该Activity的实例,就会重用该实例,不会新建Activity

会调用onNewIntent()方法。

如果不在栈顶或不存在会新建。

3.singleTask

如果在栈中已经有该Activity的实例,就会重用该Activity实例,把该activity放到栈顶,(会调用onNewIntent())可以在该方法中更新页面。(栈中的activity不会有重复)如果栈中没有该activity实例会新建activity放到栈顶。

4.singleInstance(单例模式

每个回退栈中只存在一Activity对象

如果过该Activity不存在,则要新建任务栈类存放该singleInstance模式窗口,且在新的singleInstance模式的Activity中的getTaskId会变化。应用场景:来电界面

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

  1. android:Activity四种启动模式简单介绍

    Activity启动模式 能够依据实际的需求为Activity设置相应的启动模式,从而能够避免创建大量反复的Activity等问题 Activity有四种载入模式 1.standard(默认启动模式, ...

  2. android activity四种启动模式

    1.standard <activity android:name=".MainActivity" android:launchMode="standard&quo ...

  3. Android -- Activity的生命周期,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance

    1. 示例图 . 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环:  Activity的完整生命周期自第一次调用onCreate()开始,直至调 ...

  4. Activity四种启动模式之singleTask应用

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

  5. 简单易懂的Activity四种启动模式

    Activity的四种启动模式 我们在项目开发的过程中,会涉及到应用中各个Activity的跳转,有些Activity是可以复用,不用重复加载,节约内存的使用. 将第二个Activity的启动模式修改 ...

  6. Activity四种启动模式与Flag及affinity属性详解

    Activity有四种加载模式:standard(默认).singleTop.singleTask.singleInstance standard:Activity的默认加载模式,即使某个Activi ...

  7. Android中的Activity四种启动模式(launchMode)

    转载:http://blog.csdn.net/cjjky/article/details/7533110          我们在开发项目的过程中,会涉及到该应用中多个Activity组件之间的跳转 ...

  8. Android入门:Activity四种启动模式

    一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standa ...

  9. Android基础之Activity四种启动模式

    这东西是最基础的,发现自己其实没有真正试过,好好研究研究 standard :默认, singleTop :大体上同standard,但是当该Activity实例已经在task栈顶,不再创建新的实例, ...

随机推荐

  1. mvc模型验证

    自定义的ValidationAttribute类, Compare   [Compare("MyOtherProperty")] 两个属性必须相同值,比如我们要求用户重复输入两次邮 ...

  2. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  3. 为模版设计师而生的Twig(下)-Twig使用指南

    原文地址:http://my.oschina.net/veekit/blog/276800 12. 模板继承 Twig最强大的部分是模板继承.模板继承允许你建立一个基本的"骨架"模 ...

  4. owin,webapi中将文件写入到response stream中

    首先在controller项目中添加一个类: using System; using System.Collections.Generic; using System.IO; using System ...

  5. linux下重置mysql的root密码

    # /etc/init.d/mysql stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & # my ...

  6. 【MySQL】drop大表

    利用硬链接和truncate降低drop table对线上环境的影响 众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常. 首先,我们看 ...

  7. MSSTDFMT.DLL无法注册的解决

    今天在使用Windows8的时候,发现了一个问题,当我想执行某个xxx.exe文件的时候,报的问题是MSSTDFMT.DLL无法注册. 但是我的系统又是64位的,那么可以这样操作: 从网上下载一个ms ...

  8. maven Error resolving version for plugin 'org.apache.maven.plugins:maven-eclipse-plugin' from the repositories 解决

    报错:Error resolving version for plugin 'org.apache.maven.plugins:maven-eclipse-plugin' from the repos ...

  9. AttributeError: '_csv.reader' object has no attribute 'next'

    我在使用pyhon3.4运行以下代码时报错:AttributeError: '_csv.reader' object has no attribute 'next' import csv import ...

  10. 分配和释放 BSTR 的内存

    本文档已存档,并且将不进行维护. 分配和释放 BSTR 的内存 Visual Studio .NET 2003                  转自: https://msdn.microsoft. ...