Activity启动模式之singleTask单栈模式
单栈模式,意思说白了,就是栈中只能存在同一个Activity,不能有多个相同的Activity,即单栈模式下,栈中不可能会出现两个相同的Activity。
举个例子:
甲Activity设置了android:launchMode=”singleTask”是单栈模式,现在,甲要跳转到乙Activity去,然后再从乙跳回甲,这时系统就会去判断,甲在栈中是否存在,如果存在,则不再新建甲,而是直接把原先栈中的甲调出来,调的过程是将甲上面的其他所有Activity都移出栈去,让甲置于栈顶显示,此时,只需点击一次back就可退出程序。如图所示:
另外,单栈模式,还有一个重要的一点,就是当你回跳转到甲Activity是,并不会执行onCreate(),而是直接执行OnResume()方法,所以如果要在跳转时需要传递参数,甲在接收时,就必须将方法写OnResume()方法中,否者,写在onCreate()方法中是接收不到数据的。这点很重要。