位置: 编程技术 - 正文

Activity的四种加载模式

编辑:rootadmin

推荐整理分享Activity的四种加载模式,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

配置Activity时可指定android:launchMode属性,该属性用于配置该Activity的加载模式,其属性值有: standard 标准模式,默认加载模式 singleTop Task顶单例模式 singleTask Task内单例模式 singleInstance 全局单例模式 android采用Task来管理多个Activity,当我们启动一个应用时,android就会为之创建了一个Task,然后启动这个应用的入口(即<intent-filter.../>中配置MAIN和LAUNCHER的Activity) android并没有为Task提供API,因此开发者无法真正访问Task,只能调用Activity的getTaskId()方法来获取它所在的Task的ID。 事实上我们可以把Task理解为Activity的栈,Task以栈的形式来管理Activity,先启动的Activity被放在Task栈底,后启动的Activity被放在Task栈顶。

1.standard 标准模式,默认加载模式 每次通过这种模式启动目标Activity时,Android总会为目标Activity创建一个新的实例,并将该实例Activity添加到当前Task栈中-这种模式不会启动新的Task,新Activity将被添加到原有的Task中。 在AndroidManifest.xml中MainActivity中添加android:launchMode=”standard”或不添加,因为standard模式为默认加载模式。

Activity的四种加载模式

2.singleTop模式 与standard模式基本相似,但有一点不同,当将要被启动的目标Activity已经位于Task栈顶时,系统不会重新创建目标Activity实例,而是直接复用已有的Activity实例。 在AndroidManifest.xml中MainActivity中添加android:launchMode=”singleTop”

3.singleTask模式 采用这种加载模式的Activity在同一个Task内只有一个实例,当系统采用singleTask模式启动目标Activity时,有如下三种情况 如果将要启动的目标不存在,系统将会创建目标Activity的实例,并将它加入Task栈顶 如果将要启动的目标Activity已经位于Task栈顶,此时与singleTop模式行为相同 如果将要启动的目标Activity已经存在,但没有位于Task栈顶,系统将会把位于该Activity上面的所有Activity移出Task栈,从而使的目标Activity转入栈顶。 在AndroidManifest.xml中MainActivity中添加android:launchMode=”singleTask”

4.singleInstance模式 这种加载模式下,系统保证无论从那个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个全新的Task栈来装载该Activity实例。分为如下两种情况 如果将要启动的目标Activity不存在,系统会先创建一个全新的Task,再创建目标Activity实例,并将它加入新的Task栈顶 如果将要启动的目标Activity已经存在,无论它位于那个应用程序中,无论它位于那个Task中,系统将会把Activity所在的Task转到前台,从而使用该Activity显示出来. 在AndroidManifest.xml中OtherActivity中添加 android:launchMode=”singleInstance”

注: 由于篇幅较大,更详细的案例分析及Task栈的分析已上传到我的资源中 点击下载

Dialog-普通对话框-列表对话框 finalStringitems[]={Java,Android,PHP,iOS,.NET,Sql};1.普通对话框2.列表对话框3.单选列表对话框4.复选列表对话框

Android入门---下拉刷新上拉加载更多策略的实现 最近需要实现一个下拉刷新上拉加载更多的项目,目前已经实现,下面总结下实现过程中遇到的问题和相关解决;首先理清思路:因为涉及到网络获取

Android是如何在不同屏幕上适配图片的 -- 或控件大小 转载:

标签: Activity的四种加载模式

本文链接地址:https://www.jiuchutong.com/biancheng/385119.html 转载请保留说明!

上一篇:ExpandableListView 实现分组购物车

下一篇:Dialog-普通对话框-列表对话框(普通话的对话)

  • 什么类型的电子商务
  • 短期借款利息计提分录
  • 以转账方式收到货款会计分录
  • 兼职人员工资需要申报个税吗
  • 民办非企业可以上市吗
  • 用于后勤管理部的工作
  • 施工企业必须要注册造价工程师吗
  • 多交的季度所得税怎么算
  • 材料短缺赔偿会计分录怎么写?
  • 货款尚未收到用什么记账凭证
  • 每月能领多少专利费
  • 小规模转一般纳税人生效时间
  • 小微企业季度超过45万如何填申报表
  • 增值税发票已作废怎么办
  • 商业健康保险个税申报
  • 管理费用销售费用
  • 工程施工余额怎么处理
  • 跨年度残保金退税怎么算
  • 哪些项目可以在城镇开发边界外
  • 企业收到留抵退税宣传报道
  • 为什么win7系统添加语言包
  • php获取指定日期的时间戳
  • php使用redis缓存技术
  • 承兑开出去能收回吗
  • vue的自定义指令怎么用
  • 谷歌浏览器如何设置主页为默认页
  • 个人股权转让应税凭证名称
  • php获取当前页面
  • thinkphp withjoin
  • 广告代理费制度
  • 会计有哪几种
  • 小迪安全2021
  • vuex用法和原理
  • php微信公众号开发反回图片怎么弄的学校
  • php判断数据表是否存在
  • 取得抵债资产支付的税费一般不包括下列哪种
  • 凭证摘要写错了已经结账
  • 未分配利润为负的原因
  • 厂区租赁 法律规定
  • 可行性研究合同印花税
  • 增值税认证清单路径
  • 职工保险报账
  • 计提提成是什么意思
  • 进料加工出口退税核销最新流程
  • sqlserver触发器写法
  • ubuntu20.04vim
  • sql server join
  • 数据库sql语句优化作用是什么
  • 固定资产折旧的影响因素
  • 电子承兑过期了
  • 先开票后出库会计处理
  • 租出的固定资产
  • 资本公积的相关资料
  • 以原材料投入资本
  • 要约收购期满
  • windows xp开机按f12是什么操作
  • linux/tmp
  • ubuntu不支持设置属性
  • win8换win10系统步骤
  • winproj.exe - winproj进程是什么意思
  • 标签windows
  • 怎么修改win10登录名
  • rundll32.exe是什么程序
  • win8的应用商店
  • windows8停止
  • win10桌面预览功能怎么打开
  • 升级win10系统卡住不动了
  • Unity3D游戏开发引擎
  • js 位置
  • vue实现标签页效果
  • js表单事件有哪些
  • Javascript字符串长度
  • javascript页面
  • jquery中加载文档的方法
  • 关于房地产企业所得税涉税处理表述正确的有
  • 利息发票可以抵扣进项税额吗
  • 固定资产评估增值的税务处理
  • 税务局查帐流程
  • 如何取消个人所得税预约
  • 汽车票换票需要手续费吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设