Activty和Task的启动模式
2015-09-21 16:42
162 查看
在牛客网上看到一个很不错的介绍:
“拿来主义”standard模式。哪里需要调用我我就去哪里,可以多次实例化,可以几个相同的Activity重叠。
“拒绝堆叠”singleTop模式。可以多次实例化,但是不可以多个相同的Activity重叠,当堆栈的顶部为相同的Activity时,会调用onNewIntent函数。
“独立门户”singleTask模式。同一个应用中调用该Activity时,如果该Activity没有被实例化,会在本应用程序的Task内实例 化,如果已经实例化,会将Task中其上的Activity销毁后,调用onNewIntent;其它应用程序调用该Activity时,如果该 Activity没有被实例化,会创建新的Task并实例化后入栈,如果已经实例化,会销毁其上的Activity,并调用onNewIntent。一句 话,singleTask就是“独立门户”,在自己的Task里,并且启动时不允许其他Activity凌驾于自己之上。
“孤独寂寞”singleInstance模式。加载该Activity时如果没有实例化,他会创建新的Task后,实例化入栈,如果已经存在,直接调用 onNewIntent,该Activity的Task中不允许启动其它的Activity,任何从该Activity启动的其他Activity都将被 放到其他task中,先检查是否有本应用的task,没有的话就创建。
“拿来主义”standard模式。哪里需要调用我我就去哪里,可以多次实例化,可以几个相同的Activity重叠。
“拒绝堆叠”singleTop模式。可以多次实例化,但是不可以多个相同的Activity重叠,当堆栈的顶部为相同的Activity时,会调用onNewIntent函数。
“独立门户”singleTask模式。同一个应用中调用该Activity时,如果该Activity没有被实例化,会在本应用程序的Task内实例 化,如果已经实例化,会将Task中其上的Activity销毁后,调用onNewIntent;其它应用程序调用该Activity时,如果该 Activity没有被实例化,会创建新的Task并实例化后入栈,如果已经实例化,会销毁其上的Activity,并调用onNewIntent。一句 话,singleTask就是“独立门户”,在自己的Task里,并且启动时不允许其他Activity凌驾于自己之上。
“孤独寂寞”singleInstance模式。加载该Activity时如果没有实例化,他会创建新的Task后,实例化入栈,如果已经存在,直接调用 onNewIntent,该Activity的Task中不允许启动其它的Activity,任何从该Activity启动的其他Activity都将被 放到其他task中,先检查是否有本应用的task,没有的话就创建。
相关文章推荐
- 清除所有的mobileprovision
- [Linux] ls和size命令以及程序内存映像、磁盘映像的理解
- Linux 正则表达式
- 为什么不建议直接操作AX数据库
- 一个Demo展示Storyboard的强大
- [第一篇]开始Mule之行
- Keymob 入门教程
- redis学习之 aof
- BZOJ 2084 [Poi2010]Antisymmetry Manacher
- NHibernate优点和缺点:
- 前端开发中务必要转义的三处场景
- ubuntu不小心删除了libc-bin的恢复办法
- 第四周项目(1):建立单链表
- 第二周项目三
- 第四周上机实践—项目1—建立单链表
- Hibernate(八)——Hibernate中inverse的用法
- 面试题31:连续子数组的最大和
- 第四周 项目2-建立“单链表”算法库
- iOS开发和Android开发的相似之处
- PostgreSQL的MD5加密不重复的方法