网上也搜罗了不少方法,但都不能达到真正意义上的退出。先找到一种最有效的方法:模拟一个activity栈: Java代码 package info.wegosoft.android.util; import java.util.ArrayList; import java.util.List; import android.app.Activity; /** * Filename: ActivityStackControlUtil.java * Package: info.wegosoft.android.util * Description: activity栈管理类,每当新产生一个activity时就加入,finish掉一个activity时就remove,这样到最后需要 * 完全退出程序时就只要调用finishProgram方法就可以将程序完全结束。 */ public class ActivityStackControlUtil { private static List<Activity> activityList = new ArrayList<Activity>(); public static void remove(Activity activity){ activityList.remove(activity); } public static void add(Activity activity){ activityList.add(activity); } public static void finishProgram() { for (Activity activity : activityList) { activity.finish(); } android.os.Process.killProcess(android.os.Process.myPid()); } } 在每一个activity的onCreate()中加上一句: Java代码 ActivityStackControlUtil.add(this); 在每一个activity的onDestroy()中加上一句,这个方法保证activity在finish的时候移除自定义的list: Java代码 protected void onDestroy() { super.onDestroy(); //移出管理栈 ActivityStackControlUtil.remove(this); } 最后在要完全退出程序的地方调用: Java代码 ActivityStackControlUtil.finishProgram();
|