1、
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//startMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(startMain);
System.exit(0);//退出程序
2、
模拟一个activity栈:
- 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方法就可以将程序完全结束。
- * Copyright: Copyright (c) wegosoft.info 2011
- * @author: 李辉
- * email: fzlihui@gmail.com
- * @version: 1.0
- * Create at: 2011-8-8 下午05:15:51
- */
- 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()中加上一句:ActivityStackControlUtil.add(this);
在每一个activity的onDestroy()中加上一句,这个方法保证activity在finish的时候移除自定义的list:
- protected void onDestroy() {
- super.onDestroy();
- //移出管理栈
- ActivityStackControlUtil.remove(this);
- }
最后在要完全退出程序的地方调用:ActivityStackControlUtil.finishProgram();