16.Android Activity的launchMode
Activity Task
Android系统中Activity的设计是很巧妙的。在内存管理上的设计影响多任务管理在Android系统中运行自如。
Android Task:指的是与用户交互的Activity实例的集合。
Task是以栈的形式存放在,这个栈就是Activity的回退栈。
standard
android:launchMode="standard"
standard是android:launchMode的默认值,无论是android:launchMode=”standard”,还是没有设置android:launchMode属性,Activity都是以standard模式启动的。
细心的同学可以发现,有这样的情景:如果你点击一个控件去执行一次startActivity,如果是一个低性能的Android手机,你在页面没跳转前点了N次,就会发现启动了N个新的Activity,这就是standard模式,这种模式能让你能够创建多个一个新的Activity。
Android 5点0之前
设置了android:launchMode="standard"
的Activity,新生成的实例会放入发送Intent的Task的栈顶部。
跨程序之间调用: 新开启的Activity会放入发送Intent的Task的顶部,虽然他们不是同一个App,但是还不可思议的叠在一起了。
Android 5点0之后
跨应用之间启动Activity,会创建一个新的Task,新生成的Activity就会放入新的Task中。