存储Activity,控制打开和关闭

来源:互联网 发布:创维电视怎么样知乎 编辑:程序博客网 时间:2024/06/05 13:14

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

这就需要将页面放到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);        }


原创粉丝点击