位置: 编程技术 - 正文

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

  • 消费税的计税价格是什么
  • 实收资本印花税如何申报
  • 进项税额转出期末有余额吗
  • 土地增值税纳税义务人
  • 全年一次性奖金计税方式2023
  • 季报业务活动表本月数
  • 进项税大于销项税需要交附加税吗
  • 企业贷款合同签订后多久放款
  • 个人话费发票怎么入账
  • 高新技术企业发展现状
  • 企业租赁集体土地种植经济林如何补偿
  • 房产交易如何避免个税
  • 外商投资企业所得税法第八条
  • 增值税价外费用如何开票
  • 所有的企业都能采用免费策略
  • 企业所得税属于什么科目
  • 基金公司的资本结构
  • 统计应交增值税怎么算
  • 劳务费交增值税还要交个税吗
  • 定额发票验旧后还能用吗
  • 城建税教育费附加税率怎么计算
  • 营改增试点实施办法的法律层次是
  • 公司减少注册资本的程序
  • 企业进项发票如何做账
  • 公司代扣的社保怎么做分录
  • 资产负债表里面应付账款怎么算
  • 减免税备案申请表范文
  • 上年计提的费用往来,能冲回吗
  • 公允价值变动损益怎么算出来的
  • 小规模纳税人销售额超过500万
  • 财务冲抵如何处理
  • php 数组定义
  • PHP:pg_cancel_query()的用法_PostgreSQL函数
  • 酒店损益类科目包括哪些
  • php面向对象面试题
  • 什么是实际成本计价
  • php关联数组和索引数组的区别
  • php gettext
  • 记账软件的作用
  • 衍生工具主要用途
  • err03 failed to
  • php ajax请求
  • 出口退税需要提供什么
  • opencv调用yolov8
  • 请求转发与重定义的区别
  • wordpress建立数据库错误
  • 织梦使用手册
  • mysql null+1
  • phpcms迁移
  • 二季度盈利三季度亏损
  • 一般纳税人简易征收最新政策
  • 营业总收入包括营业外收入吗
  • sql server 2005数据迁移
  • 折旧啥意思
  • 存量资金上缴财政怎么做账
  • 增值税留抵怎么做凭证
  • 职工教育经费住宿费用可以抵扣吗
  • 国税一证通
  • 其他应收款平行记账科目
  • sql中的递归
  • mysql重置binlog
  • winsock2
  • vic32.dll是什么
  • linux系统的翻译软件
  • linux创建个人主页
  • linux wc命令详解
  • kill命令用法
  • js链式编程的原理
  • node.js速成
  • 深入浅出nginx实战
  • 简述javascript的常用控制结构
  • javascript如何定义函数
  • Jquery和BigFileUpload实现大文件上传及进度条显示
  • android studio中r文件在哪
  • js获取鼠标点击位置
  • 新疆国税网上营业厅
  • 福建省国家税务局通用定额发票
  • 开电子发票流程步骤
  • 江苏医保给家人用怎么操作
  • 软件使用权转让税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设