activity管理器一次退出所有activity

来源:互联网 发布:淘宝手机排名突然没了 编辑:程序博客网 时间:2024/05/22 00:48
创建一个自己项目的Activity管理类(方法一 二均可用)记得点赞哦!谢谢
方法一
public class ActivityManager { private static Stack<Activity> activityStack; private static ActivityManager instance; private ActivityManager() { } public static ActivityManager getScreenManager() { if (instance == null) { instance = new ActivityManager(); } return instance; }
   /**    * 获取当前Activity个数    */
public int getActivitySize() { if (activityStack != null && !activityStack.empty()) { return activityStack.size(); } return 0; } /** * 退出栈顶Activity */ public void popActivity(Activity activity) { if (activity != null) { activity.finish(); activityStack.remove(activity); activity = null; } } /** * 获得当前栈顶Activity 先进后出原则 */ public Activity currentActivity() { Activity activity = null; if (activityStack != null && !activityStack.empty()) activity = activityStack.lastElement(); return activity; } /** * 将当前Activity压入栈中 */ public void pushActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.add(activity); } /** * 退出栈中class上面的所有Activity。 */ public void popAllActivityExceptOne(Class cls) { while (true) { Activity activity = currentActivity(); if (activity == null) { break; } if (activity.getClass().equals(cls)) { break; } popActivity(activity); } } /** * 退出栈中除了包名外的所有Activity, */ public void popAllActivityExceptPackageName(String packageName) { for (Activity activity : activityStack) { if (activity != null) { String name = activity.getComponentName().getPackageName(); if (!name.contains(packageName)) { popActivity(activity); } } } } /** * 退出栈中所有Activity */ public void popAllActivity() { while (true) { Activity activity = currentActivity(); if (activity == null) { break; } popActivity(activity); } }}

方法二
或者用简单的方法实现(清晰易懂操作)
public class ActivitysManager {    private static List<Activity> activityList;    private static ActivitysManager instance;    private ActivitysManager() {    }    public static ActivitysManager getActivitysManagerInstance() {        if (instance == null) {            instance = new ActivitysManager();        }        return instance;    }    //退出栈顶Activity    public void popActivity(Activity activity) {        if (activity != null) {            activityList.remove(activity);            activity = null;        }    }    //将当前Activity压入栈中    public void pushActivity(Activity activity) {        if (activityList == null) {            activityList = new LinkedList<Activity>();        }        activityList.add(activity);    }    //退出栈中所有Activity    public void exitApp(){        for(Activity activity:activityList){            if(!activity.isFinishing()){                activity.finish();            }        }        int id=android.os.Process.myPid();        if(id!=0){            android.os.Process.killProcess(id);        }    }}


原创粉丝点击