简要说明Activity的启动模式

standard:默认模式

当通过这种模式来启动Activity时,Activity会创建一个新的实例并加入当前Task栈中。如多次使用该模式启动同一个Activity,那么Task栈中会有多个Activity实例。

singleTop:Task栈顶单例模式

当通过这种模式来启动Activity时,如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例。
如果在对应的Task栈中有对应的Activity实例,但不在Task栈顶,那么就会生成一个新的Activity实例,并置于ask栈顶。

singleTask: Task内单例模式

当通过这种模式来启动Activity时,

*1.如果将要启动的Activity不存在,那么系统将会创建该实例,并将其加入Task栈顶

*2.如果将要启动的Activity已存在,且存在栈顶,那么此时不会创建新的实例,Task栈也不会改变。

*3.如果将要启动的Activity存在但是没有位于Task栈顶,那么将会把Task栈中置于该Activity的以上的其他实例全部从Task栈中移除,从而使得该Activity位于Task栈顶。

singleInstance: 全局单例模式

当通过这种模式来启动Activity时,无论从哪个Task中启动目标Activity,只会创建一个目标Activity实例且会用一个全新的Task栈来装载该Activity实例.

*1.如果将要启动的Activity不存在,那么会先创建一个新的Task栈,再创建一个该Activity的实例,并置于Task栈顶。

*2.如果将要启动的Activity已存在,那么无论它位于哪个应用程序,哪个Task栈中,都会把该Activity所在的Task栈切换到前台,从而使该Activity显示出来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容