Android Activity启动模式
温馨提示:这篇文章已超过388天没有更新,请注意相关的内容是否还可用!
文章目录
- Android Activity启动模式
- 概述
- 四种启动模式
- Intent标记
- 二者区别
Android Activity启动模式
概述
Activity 的管理方式是任务栈。栈是先进后出的结构。
四种启动模式
启动模式 说明 适用场景 standard
标准模式默认模式,每次启动Activity都会创建一个新的Activity实例,并放在栈顶。 相对独立的界面 singleTop
栈顶复用模式如果启动的Activity在栈顶,则会复用该Activity实例,并回调onNewIntent()方法。 用于接收通的界面 singleTask
栈内复用模式如果启动的Activity在栈内,则会复用该Activity实例,并回调onNewIntent()方法,并清除它上方的实例。 全局的界面,如主界面 singIeInstance
单例模式创建一个新任务栈,将新建一个Activity实例并放入新栈中,再次启动会回调onNewIntent()方法。 单独隔离的界面,如地图界面 标准模式:
栈顶复用模式:
栈内复用模式:
单例模式:
在AndroidManifest中设置:
Intent标记
标记 说明 FLAG_ACTIVITY_NEW_TASK 在新任务栈中启动Activity,非Activity中启动Activity需要添加该属性 FLAG_ACTIVITY_SINGLE_TOP 栈顶复用模式(singleTop) FLAG_ACTIVITY_CLEAR_TOP 启动模式为standard时,栈中存在该Activity实例,则重新创建一个新实例,并清除原实例上方的所有实例;启动模式为singleTop时,不会重建Activity,会调用onNewIntent()方法,并清除上方的所有实例。 FLAG_ACTIVITY_CLEAR_TASK 必须配合FLAG_ACTIVITY_NEW_TASK使用,如果任务栈存在,则清空任务栈重新创建Activity实例,如果任务栈不存在,则新建任务栈并创建Activity实例。 使用:
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
二者区别
- 优先级不同:Intent标记的优先级高于Manifest设置。
- 限定范围不同:Manifest不能设置FLAG_ACTIVITY_CLEAR_TOP,Intent无法设置singleInstance。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




