activity管理器一次退出所有activity

创建一个自己项目的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);
        }
    }

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值