在开发项目的时候,会让用户一次打开很多的页面,在完成某些操作的的时候,需要关闭一些页面,保留一些页面,或者关闭除了主页的其他页面,这样怎样控制呢
这就需要将页面放到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);
}