Android Activity栈管理 制定关闭某一个Activity,关闭所有Activity

匿名 (未验证) 提交于 2019-12-03 00:21:02

系统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<Activity> 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<Activity>();             }             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();             }         }     } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!