在android中,android活动是以栈的方式进行存储,在栈中的活动不断被重新激活至前台和不断被终止也不断被排序。因此对于栈中的活动管理也是一个比较麻烦的事情。
android给我们提供了两类活动启动方式,
1、将活动重新排序,Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
如果启动活动栈中已经存在的活动,则在原栈的基础上将此活动置于栈顶,
如果启动活动栈中不存在此活动,则创建该活动并将其置于栈顶。
2、清除已存在的活动Intent.FLAG_ACTIVITY_CLEAR_TOP
如果启动一个已经存在的活动,会将此活动之上的所有活动全部finish掉。
是否会finish所启动的活动,决定于所启动的活动是multiple还是single,默认是multiple,multiple模式会将所启动的活动给finish,single不会将它finish,而是会调用它的onNewIntent()方法。活动的single与multiple可以通过程序清单声明和在Intent中进行说明intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);