Activity的LaunchMode应用场景思考
2024-08-29 22:00:51
1. 有哪几种类型?分别有什么用?
standard,创建一个新的Activity。
singleTop,栈顶不是该类型的Activity,创建一个新的Activity。否则,onNewIntent。
singleTask,回退栈中没有该类型的Activity,创建Activity,否则,onNewIntent+ClearTop。
singleInstance,回退栈中,只有这一个Activity,没有其他Activity。
singleTask,回退栈中没有该类型的Activity,创建Activity,否则,onNewIntent+ClearTop。
singleInstance,回退栈中,只有这一个Activity,没有其他Activity。
2. 应用场景如何?
singleTop适合接收通知启动的内容显示页面。
例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。
singleTask适合作为程序入口点。
例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。
singleInstance适合需要与程序分离开的页面。
例如闹铃提醒,将闹铃提醒与闹铃设置分离。
singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。
3. TaskAffinity对LaunchMode的影响
不指定TaskAffinity,singleTask会在默认的task 中执行,这个符合预期,一般也都是这么用的,不需要指定。
不指定TaskAffinity,singleInstance之后启动的页面不能放倒singleInstance所在那个task中,会放倒默认的task中,不过一般singleInstance也不适合作为程序中间页。
这篇文章对taskaffinity的说明还不错,这个见过,不过自己还真没用过。
最新文章
- Mybatis中#{}和${}传参的区别
- javascript语言精粹摘要
- Zip it
- BZOJ1046 [HAOI2007]上升序列
- AJAX省市县三级联动
- 2015年最新出炉的JavaScript开发框架
- html5新增标签兼容性
- .Net 垃圾回收机制原理(一)
- 【hadoop】14、hadoop2.5的mapreduce的 配置
- 一步步教你读懂NET中IL(附带图)
- Leetcode_128_Longest Consecutive Sequence
- Docker制作基础镜像
- 一篇自己都看不懂的点分治&;点分树学习笔记
- [PA2014]Fiolki
- 基于socket构造c/s 架构软件
- N - Asteroids
- centos 升级python3
- 组件的三大属性state,props,refs与事件处理
- Android:AndroidManifest.xm中xmlns的作用
- Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-1-举例说明
热门文章
- mongodb可以通过profile来监控数据 (mongodb性能优化)
- [随想感悟] 面试时,问哪些问题能试出一个 Android 应用开发者真正的水平?【转自知乎】
- 关于Cocos2d-x中坐标系的种类和转换
- 奇怪的bug:javascript不执行
- ImageNet Classification with Deep Convolutional Neural Networks 论文解读
- 第三百一十七节,Django框架,缓存
- Web 浏览
- linux上nginx上配置虚拟主机的相关配置
- 中文路径-接口路径url不能传输中文解决方案
- 浅谈cookie测试