网上也搜罗了不少方法,但都不能达到真正意义上的退出。先找到一种最有效的方法:模拟一个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();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |