一、静态地指定启动方式,可以在Manifest.xml中相应的活动标签里面,写入android:launchmode。有四种,分别是
standard:可以启动多个活动实例;对应FLAG_ACTIVITY_NEW_TASK
singleTop:若栈顶已有则不会重复创建实例;对应FLAG_ACTIVITY_SINGLE_TOP
singleTask保证整个栈中只有一个实例,启动需要的且在栈中的活动,会将其上的活动全部出栈;对应FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_BROUGHT_TO_FRONT
singleInstance:新建一个返回栈独立放置此活动。
二、通过intent中添加flag(addFlag() OR setFlag())。
除了上面提到的相对应的三个,还有:
FLAG_ACTIVITY_REORDER_TO_FRONT
FLAG_ACTIVITY_NO_USER_ACTION 与区分是否用户自行退出相关。
FLAG_ACTIVITY_NO_HISTORY 以此flag启动的活动不会存在栈中,但该活动上启动的不受影响。
等等