Android:singleTask + onActivityResult

解决2个Activity互相跳转,并且栈中只保留每个Activity一个对象的存在。

在2个Activity中分别都要用到onActivityResult,所以就不能用launchMode="singleTask"。如:http://www.cnblogs.com/tt_mc/p/3586834.html

解决办法:

    在Activity中onCreate中把该Activity加入一个集合中,然后在相互跳转之前,对要跳转的Activity在集合中进行过滤,如果有就finish掉就可以了。

关闭方法:

1 public static void closeSingleActivity(Class act) {
2    for(Activity  act0 : mStackActList) {
3        if(act0 != null && act0.getClass() == act)
4          act0.finish();
5    }
6 }

 关闭操作:

1 public void mToMapClick(View view) {
2         MApplication.closeSingleActivity(DistributionMapAct.class);
3         Intent intent = new Intent(mContext, DistributionMapAct.class);
4         intent.putExtra("mDirectionMap", mExtrasMap);
5         startActivity(intent);
6 }

     

原文地址:https://www.cnblogs.com/royi123/p/4219671.html