android中的LaunchMode详解----四种加载模式
Activity有四种加载模式:
- standard
- singleTop
- singleTask
- singleInstance
配置加载模式的位置在
AndroidManifest.xml文件中activity元素的launchMode属性:
<activity android:launchMode** ="singleTask"></activity>
standard
standard模式,也就是默认模式,不需要配置launchMode。就是每次跳转时都需要创建该Activity的新实例,点击返回键,可以看到的是按照刚才创建Activity实例的倒序依次出现,类似退栈的操作,而刚才跳转的操作就是压栈的操作。
singleTop
singleTop和standard模式,都会将intent发送新的实例(后两种模式不发送到新的实例,如果已经有了的话)。不 过,singleTop要求如果创建intent的时候栈顶已经有要创建的Activity的实例,则将intent发送给该实例,而不发送给新的实例。
1、如果要跳转的Activity位于栈顶,则不创建新实例,否则创建新的实例位于栈顶。
singleTask
singleTask模式和后面的singleInstance模式都是只创建一个实例的。
当intent到来,需要创建singleTask模式Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。
当一个Activity被设置为singletask时
(1)它并没有创建新的任务栈(TaskId都是一样的)
(2)如果它已经存在于栈中,再次请求触发此Activity时,会调用此类实例的onNewIntent方法,不会重新创建新的实例
(3)如果此类所在的任务栈上面有其它Activity,那么其它的Activity会被销毁**
singleInstance
当一个Activity被设置为singleinstance时
(1)如果此Activity没有实例,它会创建一个新的任务栈。(两个TaskId不一样)
(2)如果任务栈中已经有此实例,会调用onNewIntent方法,不会创建新的任务栈和实例
(3)独立成Taskstack ,并且有且仅有你自己 。而且始终保持一个实例离栈的时候 , 先退当前的task ,再退另外的task
作者:EddieYan
链接:https://www.jianshu.com/p/404964d344d3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
android中的LaunchMode详解----四种加载模式的更多相关文章
- Android学习笔记_50_(转 四种加载方式详解(standard singleTop singleTask singleInstance)
Android之四种加载方式 (http://marshal.easymorse.com/archives/2950 图片) 在多Activity开发中,有可能是自己应用之间的Activity跳转,或 ...
- Android学习记录(8)—Activity的四种加载模式及有关Activity横竖屏切换的问题
Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance.以下逐一举例说明他们的区别: standard:Activity ...
- 【Android进阶】Activity的四种加载模式
Activity的四种加载模式: 1.standard :系统的默认模式,一次跳转即会生成一个新的实例.假设有一个activity命名为Act1, 执行语句:startActivity(new Int ...
- Activity有四种加载模式(转)
Activity有四种加载模式: standard singleTop singleTask singleInstance 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者 ...
- 区分Activity的四种加载模式
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity. ...
- 区分Activity的四种加载模式【转载】
此文为转载,文章来源:http://marshal.easymorse.com/archives/2950 文章作者: Marshal's Blog 参考文章:http://blog.csdn.n ...
- 活动 Activity 四种加载模式
singleTop要求如果创建intent的时候栈顶已经有要创建的Activity的实例,则将intent发送给该实例,而不发送给新的实例.(注意是栈顶,不在栈顶照样创建新实例!) singleTas ...
- activity的四种加载模式介绍
四种加载模式的介绍: a) Standard : 系统默认模式,一次跳转即会生成一个新的实例: b) SingleTop : 和 standard 类似,唯一的区别就是当跳转的对象是位于栈顶 ...
- activity的四种加载模式
在android里,有4种activity的启动模式,分别为: standard, singleTop, singleTask和singleInstance, 其中standard和singleTop ...
随机推荐
- Docker 容器状态查看 - 五
1.top stats 查看 docker 容器的状态信息 查看容器状态: docker stats nginx1 查看进程信息: docker top nginx1 2.inspect 使用 doc ...
- flex中使用white-space
在微信小程序开发中,view设置为flex布局,但是flex的flex-wrap属性不起作用,如果起作用的话,默认值即no-wrap不换行.如果要测试view-scroll并且scroll-x 就没法 ...
- Coursera, Deep Learning 5, Sequence Models, week1 Recurrent Neural Networks
有哪些sequence model Notation: RNN - Recurrent Neural Network 传统NN 在解决sequence input 时有什么问题? RNN就没有上面的问 ...
- mysql每组前N条
SELECT * from ( select end rownum, else @prov:=t.province end prov, t.* from ( money UNION all money ...
- service cloudera-scm-server restart报错 Unable to retrieve remote parcel repository manifest
Unable to retrieve remote parcel repository manifest 1 详细错误 ERROR ParcelUpdateService:com.cloudera.p ...
- Java -cp 命令行引用多个jar包的简单写法(Windows、Linux
1.Windows下用法 在Windows上,可以使用 用法:java your-jar-lib-folder/* your-main-class your-jar-lib-folder为存放一堆ja ...
- 实现两线程的同步二(lockSupport的park/unpark)
1.使用LockSupport的part/unpark实现 package com.ares.thread; import java.util.concurrent.locks.LockSupport ...
- JSON字符串解析成JSON数据格式
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- 【jquery隐藏、显示事件and提示callback】【淡入淡出fadeToggle】【滑入滑出slideToggle】【动画animate】【停止动画stop】
1.jquery隐藏and显示事件 $("p").hide(); //隐藏事件$("p").hide(1000); //1秒内缓慢隐藏$(" ...
- Django学习手册 - ORM - ImageField数据类型
前置步骤 setting.py文件配置: 添加app目录 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'djan ...