存储Activity,控制打开和关闭

在开发项目的时候,会让用户一次打开很多的页面,在完成某些操作的的时候,需要关闭一些页面,保留一些页面,或者关闭除了主页的其他页面,这样怎样控制呢

这就需要将页面放到List列表里面来控制了,

详见代码:

public class CacheActivity {
    public static List<Activity> activityList = new LinkedList<Activity>();

    public CacheActivity() {

    }

    /**
     * 添加到Activity容器中
     */
    public static void addActivity(Activity activity) {
        if (!activityList.contains(activity)) {
            activityList.add(activity);
        }
    }

    /**
     * 便利所有Activigty并finish
     */
    public static void finishActivity() {
        for (Activity activity : activityList) {
            activity.finish();
        }
    }

    /**
     * 结束指定的Activity
     */
    public static void finishSingleActivity(Activity activity) {
        if (activity != null) {
            if (activityList.contains(activity)) {
                activityList.remove(activity);
            }
            activity.finish();
            activity = null;
        }
    }

    /**
     * 结束指定类名的Activity 在遍历一个列表的时候不能执行删除操作,所有我们先记住要删除的对象,遍历之后才去删除。
     */
    public static void finishSingleActivityByClass(Class<?> cls) {
        Activity tempActivity = null;
        for (Activity activity : activityList) {
            if (activity.getClass().equals(cls)) {
                tempActivity = activity;
            }
        }
        finishSingleActivity(tempActivity);
    }
}
在将页面放到控制List时需要判断是否列表已经存在了:

  //将本Activity放进控制结合中
        if (!CacheActivity.activityList.contains(WholeActivity.this)) {
            CacheActivity.addActivity(WholeActivity.this);
        }


猜你喜欢

转载自blog.csdn.net/qq_36961698/article/details/78176010