任务栈和启动模式(重要)
1、任务栈
activity task stack
activity stack
back stack 后退栈
last in , first out (后进先出)
|
2、启动模式 (四种) a) Standard:标准模式,默认的的模式,遵循后进栈的先出栈的原则 b) SingleTop:如果发现激活的activity是自己,那么不再激活新的activity,而是复用旧的activity并调用onNewIntent()方法。例如:浏览器的书签是这个模式,防止恶意的网站提示用户多次添加书签带来的不好的用户体验 Singletop应用场景:避免重复的打开和重复的激活 C)SingleTask,如果发现激活的activity在任务栈里有,那么它将清空上面的activity,保证内存中只有一个activity在,也会调用onNewIntent()。例如:浏览器是这样的 SingleTask应用场景:浏览器这样的耗内存资源的应用,适合这种模式。 D)SingleInstance:系统为之分配一个新的task,且里面只能有其一个Activity,也会调用onNewIntent。 只要是复用,那么就会调用onNewIntent()方法。 SingleInstance应用:呼叫界面,紧急呼叫界面,有道快速取词 注意:一般情况,一个应用程序只对应一个Activity Task,但对于singleinstance配置的,一个应用程序会对应多个Activity Task,配置了singleInstance的activity,外界的应用访问其,都是从这个Activity task,保证了内存中只存在一个该activity实例,类似java中单例。 |
结果: |