package com.shzzdddd.wms.service;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
//然后用这个ActivityUtils来跟踪所有的activity
public class ActivityUtils {
private static final List<Activity> sActivityList = new ArrayList<Activity>();
private static boolean sProcessKilled = true;
public static boolean isProcessKilled() {
return sProcessKilled;
}
public static void setProcessStarted() {
sProcessKilled = false;
}
/***
* 在每个Activity的onCreate中调用,用来记录打开了的activity
*/
public static void addActivity(Activity act) {
sActivityList.add(act);
}
/***
* 在每个Activity的onDestroy中调用
*/
public static void removeActivity(Activity act) {
sActivityList.remove(act);
}
/***
* 结束所有的activity,并关闭程序的进程
*/
public static void exit() {
finishAll();
System.exit(0);
}
/***
* 结束所有的activity,但不会关闭程序的进程
*/
public static void finishAll() {
for (Activity act : sActivityList) {
act.finish();
}
sActivityList.clear();
}
private ActivityUtils() {} // no instance
}
最后只要在每个Activity中的onCreate()方法中写上:ActivityUtils.addActivity(this);然后就可以调用ActivityUtils的finishAll();
就这样,我们就可以随意的在某一个activity中关闭所有已打开的activity了,前提是要在你建立的每个activity中都调用那个。
这种方法会导致内存泄露,应用占用内存不能得到释放越来越大,不建议采用~