一、使用集合

先创建一个用于添加activity和销毁activity的集合类:

public class SysApplication extends Application {    private List mList = new LinkedList();    private static SysApplication instance;    private SysApplication() {    }    public synchronized static SysApplication getInstance() {        if (null == instance) {            instance = new SysApplication();        }        return instance;    }    // add Activity    public void addActivity(Activity activity) {        mList.add(activity);    }    public void exit() {        try {            for (Activity activity : mList) {                if (activity != null)                    activity.finish();            }        } catch (Exception e) {            e.printStackTrace();        }    }    //注意:次方法用于垃圾回收,如果手机内存小,或使用虚拟机测试,一定要注释掉这段代码    @Override    public void onLowMemory() {        super.onLowMemory();        System.gc();    }}


在需要集体销毁的Activity的onCreate方法中添加如下代码:

SysApplication.getInstance().addActivity(this);
在需要退出的地方添加如下代码:

SysApplication.getInstance().exit();

二、使用栈

public class ActivityCollector {    private static ActivityCollector instance;    private Stack activityStack;//activity栈    private ActivityCollector() {    }    //单例模式    public static ActivityCollector getInstance() {        if (instance == null) {            instance = new ActivityCollector();        }        return instance;    }    /**     * 清空stack     */    public void clearStack(){        if(activityStack != null){            activityStack.clear();        }    }    //把一个activity压入栈中    public void pushOneActivity(Activity actvity) {        if (activityStack == null) {            activityStack = new Stack();        }        activityStack.add(actvity);        Log.d("MyActivityManager ", "size = " + activityStack.size());    }    //获取栈顶的activity,先进后出原则    public Activity getLastActivity() {        return activityStack.lastElement();    }    //移除一个activity    public void popOneActivity(Activity activity) {        if (activityStack != null && activityStack.size() > 0) {            if (activity != null) {                activity.finish();                activityStack.remove(activity);                activity = null;            }        }    }    //退出所有activity    public void finishAllActivity() {        if (activityStack != null) {            while (activityStack.size() > 0) {                Activity activity = getLastActivity();                if (activity == null) break;                popOneActivity(activity);            }        }    }}


使用方法和第一种类似。


更多相关文章

  1. Android超炫日期日历控件:TimesSquare
  2. Android应用程序进程启动过程的源代码分析(2)
  3. android 常用组建案例
  4. Android优质学习方法
  5. android 开发收银系统,弹出键盘固定界面UI的方法
  6. Android源代码编译
  7. How to destroy an Activity in android
  8. android:向手机卡上写入文件时总是不成功,解决办法
  9. Android(安卓)WebView总结

随机推荐

  1. Android http请求例子、Unicode转UTF-8 j
  2. android 线程中的ui问题 Handler的基本使
  3. Android 屏幕(View)坐标系统
  4. android Manifest 一些属性
  5. 【Android UI设计与开发】之动画(Animatio
  6. 【Android每周专题】Android中maxSdkVers
  7. android 横竖屏
  8. Android开发1――查找所需要出示权限的内
  9. Android(安卓)风格
  10. android 使用代码方式创建自定义progress