activity四种启动模式讲解

      在android开发中activity的启动模式会经常用到,不过对于刚接触安卓的同学,可能会说我从来就没对activity的启动设置过,怎么就可以启动啊,其实不然,android在配置中其实是有默认启动方式的,也就是说开发中不设置,android系统都会给一种默认的启动方式。下面就具体详细介绍下,activity的四种启动方式。

                    四种启动方式分别是:standard ,singleTop、singleTask、singleInstance 接下来具体进行讲解:

 1.首先是standard (英文标准的意思)也是android默认的启动方式,先说下启动方式是在mainfest中android:launchMode=中设置,standard模式在每次从一个activity启动另一个activity(包括自身)都会生成一个新的实例,例如:从Activity1中的点击BUtton点击事件启动activity1(自身)。那么如果我点击按钮,便会新启一个Activity1叠在刚才的A1之上,一次点击会生成多个activity1的对象。因为activity是以栈的方式管理,所以点back键会依照栈顺序依次退出(栈遵循以先进后出的原则)。

2.第二种启动方式是 singleTop,该启动方式可以简单这样理解,activity都是以任务栈的形式管理,如果任务栈中已经有该activity实例并且在栈顶,那么就直接使用不需要再创建新的activity实例,如果任务栈中没有该实例(activity)或者是有该activity实例但不是在栈顶都需要重新创建activity实例。

3.第三种启动方式是singleTask如果在栈中已经有该activity的实例,再被启动的时候就不会再对该activity创建新的实例,只会调用该实例的onNewIntent()方法,重新回到栈顶在它上面的(activity)实例将会被移除栈,当然如果栈中不存在该activity实例就会创建新的实例。

4.第四种启动方式是singleInstance

简单点理解,singleInstance所标识的Activity,当被启动时,系统会首先判断系统其他栈中是否已经存在此Activity实例,有则直接使用,并且其所在的Activity栈理论上只有它一个Activity元素。所以启动它的Activity与它并不在一个task中,所以才需要特别注意Back的问题。一般表示为:task1 A -> task2 B。

singleInstance表示该Activity在系统范围内“实例唯一”。由此我们发现,singInstance和singleTask主要区别在与系统范围内的“实例唯一”还是当前Activity栈“实例唯一”。(第四种启动方式一直没有找到更简单易懂的语言去表述,在这引用corn的表述,在此谢谢仁兄

 


Active4j-oa是基于active4j-jsp快速开发框架构建而来的OA办公系统。基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的开源框架。 Active4j-oa是基于active4j-jsp快速开发框架构建而来的OA办公系统。基于springboot2.0,以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,JSP作为前端页面引擎,采用JSTL标签库封装组件的开源框架。 Active4j-oa目前内置了绝大部分常见办公系统功能,包括系统管理,工作流管理,个人办公,人力资源管理,执行力管理等几大模块。开发者只需根据具体业务需求,稍加改进,就可以开发出一套完整的OA办公系统。 Active4j-oa特点: 开箱即用,节省开发时间,提高开发效率 代码全部开源,持续更新,共同维护 基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发 友好的代码结构及注释,便于阅读及二次开发 使用分层设计,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。 支持分布式部署,session集成了redis 灵活的权限控制, 整合shiro,可控制到页面或按钮,满足绝大部分的权限需求,优化权限注解方便权限配置 日志记录采用aop(LogAop类)方式,可对用户所有操作进行记录 集成jsp页面,采用标准JSTL标签库对常用组件进行封装,便于将传统项目过度到springboot 组件库丰富,对常用页面组件进行了代码封装,提高开发效率 功能完善,涵盖oa办公系统绝大数功能,拿来即用 前端页面简洁优美,支持移动端 支持多种浏览器: Google,火狐,IE,360等
Active4j-boot是基于SpingBoot2.0轻量级的java快速开发框架。以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,layui作为前端框架并进行前后端分离的开源框架。 Active4j-boot功能介绍: 1、Active4j是基于SpingBoot2.0轻量级的java快速开发框架。以Spring Framework为核心容器,Spring MVC为模型视图控制器,Mybatis Plus为数据访问层, Apache Shiro为权限授权层, Redis为分布式缓存,Quartz为分布式集群调度,layui作为前端框架并进行前后端分离的开源框架。 2、Active4j目前内置了部门管理、用户管理、角色管理、菜单管理、数据数据字典、定时任务、常用系统监控等基础功能,并内置了文件上传下载、导入导出、短信功能、邮件发送等常用工具,整合了layui前端常用组件。 3、Active4j定位于企业快速开发平台建设,代码全部开源,持续更新,共同维护。Active4j可以应用在任何J2EE的项目开发中,尤其适合企业信息管理系统(MIS),企业办公系统(OA),客户关系管理系统(CRM),内容管理系统(CMS)等。 Active4j-boot特点: 1、开箱即用,节省开发时间,提高开发效率 2、代码全部开源,持续更新,共同维护 3、基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发 4、友好的代码结构及注释,便于阅读及二次开发 5、使用分包分层设计,工程拆分,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。 6、支持分布式部署,session集成了redis 7、灵活的权限控制, 整合shiro,可控制到页面或按钮,满足绝大部分的权限需求,优化权限注解方便权限配置 8、日志记录采用aop(LogAop类)方式,可对用户所有操作进行记录 9、引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能 10、引入swagger文档支持,方便编写API接口文档 11、项目采用前后端分离架构,提升效率 12、前端组件丰富,集成layuiadmin,基本涵盖了所有前端开发需求 13、前端页面简洁优美,支持移动端 14、数据统计报表:丰富的报表统计功能 15、支持多种浏览器: Google, 火狐, IE,360等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值