Activty栈
我们是无法的控制ACtivity的状态的,Activity是通过一种Activity栈的我方式来管理Activity的,一个Activity的实例的状态决定他在栈中的位置。处于前台的Activity总是处于栈的最顶端,当前台的Activity因为异常或者其他的原因被销毁的时候,处于栈的第二层的Activity将被激活,上浮到栈顶,当新的Activity启动入站的时候,原来的Activity会被压入到栈的第二层,一个Activity在栈中的位置变化反应了他在不同的状态间的转换。
Activity的4种加载模式
Android的多个Activity 的开发中,Activity之间的跳转可能需要多种的方式,有时候可能普通的生成一个实例,有的时候希望跳转到原来的某个Activity的实例,而不是生成大量的重复的Activity,加载模式便是决定以那种方式来启动一个Activity
1、standard:标准模式,调用startActivity方法后产生一个新的实例
2、singleTop:如果已经有一个实例位于Activity栈的顶部,就不产生新的实例,而只是调用ACtivity的newInstance()方法,如果不是位于栈顶,则产生一个新的的实例。
3、singleTask:会有一个新的task中产生这个实例,每次调用都会使用这个,不会产生新新的实例了。
4、singleInstance:这个是跟singleTask基本上一样,区别是这个模式下的Activity实例所处的task中,只能有这个Activity实例,不能有其他的实例。
这些启动模式可以在AndroidMainfest.xml文件中的<activity>中的launchMode的属性进行设置。