以前都是在知乎上问有什么学习Android进阶的书看到了这本书《Android开发艺术探索》读者确实挺好的在这做个读书笔记。
学Android都知道Activity有四种启动模式,主要是:standard、singleTop、singleTask和singleInstance.默认的情况下我们使用的都是standart这种模式。
standard:标准模式,每次启动Activity的时候都会创建一个新的实例,无论这个实例是否已经存在,一个任务栈中可以有多个实例,每个实例也可以属于不同的任务栈。比如ActivityA启动了ActivityB(B是标准模式)B就会进入A的栈中。
singleTop:栈顶复用模式。如果activity已经位于任务栈中,那么此activity不会被重新创建同时他的onNewIntent方法会被回调,通过此方法可以取出当前请求的信息。但是这个activity的onCreate方法和onStart方法不会被调用,如果新的Activity已经存在但是不位于栈顶,那么此Activity依然会被创建。
singleTask:栈内复用模式。这是一种单实例模式,在这种模式下,只要activity在一个栈中存在,那么多次启动此antivity都不会重新创建实例,但是会调用onNewInten方法。由于singleTask默认具有clearTop的效果即在它之上的activity都会出栈
- 有ABCD四个Activity如果这时候再启动B那么栈内只会有AB,CD出栈。
singleTaskInstance:单实例模式。这是加强的singleTask模式,就是具有此种模式的Activity只能单独位于一个任务栈中。