A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 「青春」zāI路 中级黑马   /  2013-9-8 15:18  /  633 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

网上也搜罗了不少方法,但都不能达到真正意义上的退出。先找到一种最有效的方法:模拟一个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();



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马