程序有个完全退出的功能,据说使用堆栈管理activity,在退出时候能完全的退出。
这个是activity管理类/**
 * 使用单例模式 将activit存放到堆栈里进行管理
 */
public class ScreenManager {   
    private static Stack<Activity> activityStack;
    private static ScreenManager instance;
    private  ScreenManager(){}   
    public static ScreenManager getScreenManager(){   
        if(instance==null){   
            instance=new ScreenManager();   
        }
        return instance;   
    }   
    /**
     * 存放activity到堆中
     * @param activity
     */
    public void pushActivity(Activity activity){   
        if(activityStack==null){   
            activityStack=new Stack<Activity>();   
        }   
        activityStack.add(activity);   
    }
    /**
     * 从堆栈中取activity 并关闭
     */
    public void popActivity(){   
        Activity activity=activityStack.lastElement();   
        if(activity!=null){   
            activity.finish();   
            activity=null;   
        }   
    }
    public void popActivity(Activity activity){   
        if(activity!=null){   
            activity.finish();   
            activityStack.remove(activity);   
            activity=null;   
        }   
    }
    /**
     * 从堆栈中取最后一个activity
     * @return
     */
    public Activity currentActivity(){   
        Activity activity=activityStack.lastElement();   
        return activity; 
    }
    /**
     * 移除全部并且关闭activity
     */
    public void popAllActivit(){   
        while(true){   
         if(!activityStack.empty())
         {
         //Activity activity = activityStack.pop();
         Activity activity=currentActivity();
         if(activity==null){   
         break;   
         }
         popActivity(activity);   
         }
        }   
    }
    public void popAllActivityExceptOne(Class cls){   
        while(true){   
            Activity activity=currentActivity();   
            if(activity==null){   
                break;   
            }   
            if(activity.getClass().equals(cls) ){   
                break;   
            }   
            popActivity(activity);   
        }   
    }}  在activity跳转时候进行压入堆栈//添加到堆栈
ScreenManager screenManger=ScreenManager.getScreenManager();
screenManger.pushActivity(TestExitB.this);
                   Intent intent = new Intent();
intent.setClass(TestExitB.this,TestExitC.class);
       startActivity(intent);