[android] 04_任务栈和启动模式(重要)

Android 4.0

任务栈和启动模式(重要)

1、任务栈 
activity task stack
activity stack
back stack  后退栈

last in , first out (后进先出)
2、启动模式 (四种)

a) Standard:标准模式,默认的的模式,遵循后进栈的先出栈的原则

b) SingleTop:如果发现激活的activity是自己,那么不再激活新的activity,而是复用旧的activity并调用onNewIntent()方法。例如:浏览器的书签是这个模式,防止恶意的网站提示用户多次添加书签带来的不好的用户体验

Singletop应用场景:避免重复的打开和重复的激活

CSingleTask,如果发现激活的activity在任务栈里有,那么它将清空上面的activity,保证内存中只有一个activity在,也会调用onNewIntent()。例如:浏览器是这样的

   SingleTask应用场景:浏览器这样的耗内存资源的应用,适合这种模式。

D)SingleInstance:系统为之分配一个新的task,且里面只能有其一个Activity,也会调用onNewIntent。

只要是复用,那么就会调用onNewIntent()方法。

SingleInstance应用:呼叫界面,紧急呼叫界面,有道快速取词

注意:一般情况,一个应用程序只对应一个Activity  Task,但对于singleinstance配置的,一个应用程序会对应多个Activity   Task,配置了singleInstanceactivity,外界的应用访问其,都是从这个Activity  task,保证了内存中只存在一个该activity实例,类似java中单例。

 
结果: