位置: 编程技术 - 正文

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-普通对话框-列表对话框(普通话的对话)

  • 非企业员工可以报销差旅费吗
  • 开淘宝店怎么做账
  • 对方发票丢了能报销吗
  • 电子税务局利润表本期金额
  • 待抵扣进项税额是什么意思
  • 没有签订购销合同的协议
  • 私对公转错了多久退回来
  • 奖品偶然所得个税如何申报
  • 公司借款给个人利息怎么做账
  • 这个月只有进项没有销项
  • 调试阶段是什么意思
  • 事业单位开办费账务处理
  • 递延收益可以是负数吗
  • 房产税免收范围包括
  • 开专用发票可以不写单位与型号么?
  • 扩大税收来源什么意思
  • 公司支付媒体广告费用必须签订合同吗?如果没有签订合同是否不能税前扣除?
  • 固定资产一次性扣除账务处理
  • 实收资本的会计处理
  • 土地出让金契税什么时候缴纳
  • 代账代税与自行核算申报应从哪几个角度考虑
  • 水利建设专项收入怎么申报不了
  • 销售已使用的固定资产简易计税
  • 城镇土地使用税征收标准及计算方法
  • 代扣代缴税款的完税凭证抵扣期限
  • 主营业务成本净额计算公式
  • 承兑汇票还款
  • 如何更改自己
  • linux 分享文件
  • 在建工程账务处理包括哪些内容
  • 职工教育经费一定要提吗
  • 广告费增值税税目是什么
  • 酒店装修期间的费用如何核算
  • 福利包括什么
  • Vue3通透教程【十四】TS复杂类型详解(一)
  • php use关键字
  • 被称为下一代风华的是
  • 资本金什么时候可以退回
  • 处置长期股权投资产生的投资收益是什么
  • 个人出租房可开发票吗
  • 什么情况下需要异地预缴增值税
  • 请问如何在
  • 验证码php代码
  • mongodb好用吗
  • 织梦设置的关键词看不到
  • 零售药店可申请纳入医保定点
  • 信用减值损失属于什么类
  • 股权激励费用摊销意思是
  • 农副产品收购分录
  • 销售折扣与折让在财务报表哪里
  • 餐饮会计内账怎么记账
  • 电费发票未到怎么入账
  • 客户给我们的罚款怎么查
  • 商品没入库直接发货
  • 制造费用可以计提吗
  • 支付银行贷款利息的会计处理
  • 非流动资产基金和专用基金
  • 管理费用收入缴纳增值税吗
  • 怎么把应付账款调成应收
  • 弥补亏损的会计处理
  • 电汇凭证需要盖什么章
  • 怎么用ubuntu
  • win7系统cpu占用率过高怎么办
  • win7系统开机蓝屏0x0000007b
  • win8系统如何关闭杀毒系统
  • linux修改时间格式
  • Ubuntu系统怎么设置IP
  • skynetave.exe - skynetave是什么进程 有什么用
  • win10浏览器没有网络连接
  • window10关闭
  • windows7电脑无法正常运行
  • win7开机无信号之后黑屏
  • perl and
  • shell脚本实现ssh登录
  • bat批处理文件运行不了
  • Vuforia 4.0 beta——Object Recognition (二)
  • 车险专票怎么做账
  • 没有单位怎么交职工养老保险
  • 江西省国家税务局发票查询
  • 山西税务体检医院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设