在项目中的一个activity中写很少的代码就可以关掉所有的已经打开的activity


     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中都调用那个。

你可能感兴趣的:(Activity)