博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity的四种启动模式
阅读量:6625 次
发布时间:2019-06-25

本文共 971 字,大约阅读时间需要 3 分钟。

standard 默认的模式

就是那种你可以一直创建他的实例例如你创建了Activity a之后再startActivity a,还是会创建一个一模一样的,就和平常的使用一个样子

singleTop

这种模式是 在创建了Activlty a 之后再创建Activity a的时候 就不会创建成功,而是会调用你第一个创建的Activyt a里面的getNewIntent方法。。。但是要注意的是你的Activity a这时候在栈顶的时候再创建Activity a才会不重复创建,在栈顶的意思就是你当前这个页面就是Activity a,如果你在a的时候 startActivity了 Activity b,之后再创建Activiyt a是不会调用Activity a的getNewIntent方法的,因为他此时不会处于栈顶

singleTask

就是创建了Activitiy a,之后又创建了b c d,当在d的时候再创建a,会把中间的b c都finish了。。意思就是这个栈中该Activity的实例只能存在一个,并且会将中间的都清空,并且调用自身的getNewIntent方法,如果是Activity a创建了Activity a 则只会调用自己的getNewIntent。 适用的场景:当你要创建一个东西(页面0),比如第一个页面要选择时间,第二个页面要选择地点,第三个页面选择费用,在第三个页面选择完成后,要把 1 2 3 页面拿到的东西回传给页面0,有两种方式,一种就是startActivityForRsult,但是每个页面都要加一次。。这样子感觉比较复杂,这时候只要将创建东西的页面改为singleTask就能完美解决这个问题。。。

singleInstance

如果应用1的任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两应用共享该Activity实例;

大概就是比如来了通知,要打开Activity a,之后另外一个应用也要打开Activity a这样子会进入到两个不同的栈中,设置他的属性为singleInstace就会使他们进入到同一个栈。。不会重复创建Activity。

转载于:https://www.cnblogs.com/wgha/p/5831118.html

你可能感兴趣的文章
为什么短视频会让人刷不停?背后也许用了这套技术
查看>>
Kubernetes 在知乎上的应用
查看>>
Fescar 发布 0.3.1 版本, 支持 ZooKeeper 注册中心
查看>>
【死磕 Spring】----- IOC 之解析 bean 标签:BeanDefinition
查看>>
4.1 在SELinux中客体类存在的目的
查看>>
E-HPC支持多队列管理和自动伸缩
查看>>
各种设备的CSS3MediaQuery整理及爽歪歪写法
查看>>
基础为重,Python的基础,成就月薪过万
查看>>
PHP浮点数的精确计算BCMath
查看>>
Oracle RAC安装过程中碰到的“坑”和关键点(一)
查看>>
【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
查看>>
H.264学习笔记之一(层次结构,NAL,SPS)
查看>>
Radware:IP欺诈等让网络攻击难以防范
查看>>
基于Token认证的WebSocket连接
查看>>
【Solidity】2.合约的结构体 - 深入理解Solidity
查看>>
《Drupal实战》——2.6 小结
查看>>
《C语言及程序设计》实践参考——二分法解方程
查看>>
java thread中的wait()和notify()
查看>>
2016最新搜索引擎优化(SEO)重点要素
查看>>
当Web访问性能出现问题,如何深探?
查看>>