Android关掉多个activity,Android应用开发之Android Activity栈管理 制定关闭某一个Activity,关闭所有Activit...

本文将带你了解Android应用开发之Android Activity栈管理  制定关闭某一个Activity,关闭所有Activit,希望本文对大家学Android有所帮助。

系统Api :打开新的Activity 关闭之前所有Activity。

Intent intent = new Intent(this,   LoginActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK   |   Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);

自己管理: 将Activity放入集合进行管理

/**   * Activity管理类   * */public   class AppManager {    private static Stack activityStack;      private static AppManager instance;      private AppManager() {  }    /**      * 单一实例      */ public static AppManager getAppManager() {   if   (instance == null) { instance = new AppManager();   }     return instance;  }    /**      * 添加Activity到堆栈    */ public   void addActivity(Activity activity) {   if (activityStack == null)   { activityStack = new Stack();   }     activityStack.add(activity);  }    /**      * 获取当前Activity(堆栈中最后一个压入的)      */ public Activity currentActivity() {   Activity   activity = activityStack.lastElement();   return activity;  }      /**    * 结束当前Activity(堆栈中最后一个压入的)    */ public void finishActivity() {     Activity activity = activityStack.lastElement();     finishActivity(activity);  }    /**      * 结束指定的Activity      */ public void finishActivity(Activity activity) {     if (activity != null) { activityStack.remove(activity);   activity.finish(); activity = null;   }  }      /**    * 结束指定类名的Activity    */ public void   finishActivity(Class cls) {   for (Activity activity   : activityStack) { if (activity.getClass().equals(cls)) {    finishActivity(activity); }   }  }    /**      * 结束所有Activity      */ public void finishAllActivity() {   for (int i   = 0, size = activityStack.size(); i < size; i++) { if (null !=   activityStack.get(i)) {  activityStack.get(i).finish(); }   }     activityStack.clear();  }    /**      * 退出应用程序      */ @SuppressWarnings("deprecation")  public   void AppExit(Context context) {   try { finishAllActivity();   ActivityManager activityManager = (ActivityManager)   context.getSystemService(Context.ACTIVITY_SERVICE);   activityManager.restartPackage(context.getPackageName()); System.exit(0);     } catch (Exception e) { e.printStackTrace();   }    } }

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注移动开发之Android频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值