Android Activity的 四种启动模式
首先说一下怎么使用:在清单文件的activity标签下输入 下面的代码
Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" />
说起Android的四种启动模式,
第一种模式是默认模式,也叫普通模式:
Standard:在该模式下Activity的启动每一个实例都是默认的进入栈中,遵循先进后出的特性,那怕是用户按下了返回键,Activity 也是从栈顶一次移除每一个Activity实例,直到Activity为空是退出程序;
第二种模式是栈顶复用模式:
SingleTop:在个模式下如果要跳转的某一个Activity是系统会先检查栈顶是否存在这个Activity的实例,如果存在就调用此Activity的实例已经存在,不会重新创建一个新的实例,而是调用onNewIntent(),拿到此Activity的实例避免栈顶实例被重复创建,如果没用就创建一个新的Activity实例,压入栈中;
第三种模式是栈内复用模式:
SingleTask:在这个模式下当启动一个Activity的时候会先检查栈内有没有要启动的这个Activity的实例,如果有就是用栈内的Activity实例,不会创建一个新的实例,而是调用onNewIntent(),拿到此Activity的实例并且移除之上的所有的Activity实例,避免栈内实例的重复创建,如果没用就创建一个新的Activity实例,压入栈中;
第四种模式单一栈模式(唯一栈模式):
SingleInstandce:在整个Android系统中(可能有很多任务栈中)只存在一个Activity实例,不同的应用程序去启动这个Activity的时候,都会共享这个activity实例中,他会独立的运行在这个单独任务栈中,并且这个任务栈中只存这一个实例,而且在这个任务栈的最底层,一般的应用场景,系统打电话,短信等;