addActivity 添加Activity
finishActivity 关毕所有Activity
getTopActivity 结束指定的Activity
finishSingleActivityByClass 结束指定类名的Activity
public class DeleteActivity {
public static List<Activity> activityList = new LinkedList<Activity>();
public DeleteActivity() {
DubLogUtils.i(activityList.size());
}
/**
* 添加到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();
}
activityList.clear();
}
//获取当前栈顶activity
public static Activity getTopActivity(){
if (activityList.isEmpty()){
return null;
}else {
return activityList.get(activityList.size()-1);
}
}
/**
* 结束指定的Activity
*/
public static void finishSingleActivity(Activity activity) {
if (activity != null && activityList.size() > 0) {
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);
}
}