activity的四种加载模式
在android里,有4种activity的启动模式,分别为: standard, singleTop, singleTask和singleInstance, 其中standard和singleTop类似, singleTask和singleInstance类似, 用法如下:
(1).standard和singleTop
这两种加载模式下, 同一个task中可以存在一个activity的多个实例, 并且可以位于activity栈的任意位置。
先举个例子:
假设目标task的activity栈为: A->B->C->D(栈底->栈顶)
在程序中调用startActivity(D)
如果D是standard模式, 则activity栈变为:
A->B->C->D->D, 也就是会重新创建一个D实例
如果D是singleTop模式, 则activity栈变为:
A->B->C->D, 不会创建D实例, 就是说如果D在目标task 的activity栈的栈顶, 则不会创建新的实例, 而是调用D的onNewIntent()方法, 反之如果D不在目标task 的activity栈的栈顶, 则会重新创建一个D实例
(2). singleTask和singleInstance
这两种加载模式下, 同一个task中只会存在一个activity的实例, 如果通过startActivity()启动,则调用onNewIntent()方法, 而不是创建一个新的实例。这两种模式下, activity实例均位于activity栈的栈底。
这两种加载模式的区别:
假设一个Activity的实例A 采用如下两种加载模式:
singleTask:
如果A调用startActivity(B)启动B实例, 则A和B位于同一个task中。
singleInstance:
如果A调用startActivity(B)启动B实例, 则系统会自动给intent添加一个属性FLAG_ACTIVITY_NEW_TASK, 将B实例放入到一个新的task中, 也就是说A实例所在的task中只能有A自己, 不能存在其他实例
转载于:https://www.cnblogs.com/wangzehuaw/p/4977649.html
activity的四种加载模式相关推荐
- 区分Activity的四种加载模式
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity. ...
- 区分Activity的四种加载模式(转)
转自:http://marshal.easymorse.com/archives/2950 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activi ...
- Activity的四种加载模式(转载)
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity.这 ...
- 区分Activity的四种加载模式-activity
转载:http://marshal.easymorse.com/archives/2950 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activi ...
- Activity四种加载模式
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity. ...
- android activity四种加载模式
Activity之间的跳转,或者说加载一个新的Activity,一般对于开发者来说,都不是一个太难的问题.直到后来随着不断的深入,才发现原来Activity的加载还分为四种不同加载模式,让我突然有了一 ...
- Android之Activity的4种加载模式
一个Task可以理解成一个Activtiy栈,可以装载一个或者多个Activity,回退和打开的顺序逻辑和基本的数据结构栈是一致的.下面的这段话非常关键:那就是,一个Application如果有N个A ...
- Unity—AssetBundle的打包及四种加载资源方式
AssetBundle打包:脚本放在Editor文件夹内 具体代码如下: using UnityEditor; using System.IO;public class CreateAssetBund ...
- Android图片加载之认识bitmap的四种加载方式
Android的Bitmap有四种高效加载方式 从获取方式分: (1)以文件流的方式 假设在sdcard下有 test.png图片 FileInputStream fis = new FileInpu ...
最新文章
- 开发者,只有被裁,没有退休
- pcie 设备号多少位_怎么读取PCIe设备的VPD信息?
- [END_OBJECT] but found [FIELD_NAME]')
- shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...
- rman备份rman-00554 ,rman-04005错误
- python连连看小游戏_python递归法实现简易连连看小游戏
- Ubuntu16.04 安装Teamviewer
- 一个鼠标控制2台电脑简单方法
- 【vijos】在vijos的自己的域中创建题目
- 《普林斯顿微积分读本》笔记
- 浙大PAT 1063
- 关于WIN10开机自动开启小键盘解决方案
- QQVideo 开始公测
- 企鲸客scrm 渠道活码功能介绍及作用
- 前端背景图放置_如何在css中添加背景图?
- 服务器主板四路SLI时候出现的问题
- 3行代码爬取京东数据
- 面向搜索引擎的隐蔽式SEO木马---之查杀再现笔记
- 48小时房价暴涨57%,数据解读站在风口上的这座小城
- JS冒泡排序的6种写法(武当雄风)
热门文章
- Netbeans使用maven下载源码
- 如何定制一款12306抢票浏览器——完结篇
- Windows7下配置MinGW+CodeBlocks+OpenCV2.3.1
- 【C++】Google C++编码规范(一):作用域
- 【物联网】NB-IoT简介
- linux驱动:音频驱动(二)ASoc
- 我的Rails笔记(1)
- 2021暨南大学计算机考研,暨南大学2021广播电视专硕经验贴
- 数据库中的datatime的长度怎么设定_软件测试必备之数据库知识(一)
- 怎么用python画个电脑_python语言还是java如何用python画爱心