Activity的四种启动模式

Activity是由任务栈管理的,每启动一个Activity,就会被放入栈中,按返回键,就会从栈顶移除一个Activity。

启动模式在mainfest文件中的Activity的android:launchMode属性里设置

android:taskAffinity 给任务栈设置名称,不设置的话默认为所在的包名

  1. standard:标准模式,默认
    不管这个Activity之前有没有启动/创建过,只要启动,就创建一个新的。hashcode值改变。

  2. singleTop:Task栈顶复用模式
    要启动的Activity在目标栈的栈顶,不会创建新的Activity,会复用这个栈顶的Activity;
    并且其onNewIntent()方法会被调用;
    如果不在栈顶,那么重新创建一个新的实例。

  1. singleTask:Task栈内复用模式
    在同一个任务栈中,要启动的目标Activity已经在栈中,则会复用该Activity,并调用其onNewIntent()方法,并且该Activity上面的Activity会被清除;如果栈中没有,则创建新的实例。

  2. singleInstance: 全局单例模式
    不管在哪个栈里面,在所有栈里面,只要有这个Activity就可以复用

没有给栈起名字时,默认的栈名为Activity所在的包名,

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容