Android堆栈管理的类ActivityStackManager
来源:互联网 发布:淘宝详情页模板视频 编辑:程序博客网 时间:2024/05/17 05:43
实战项目中管理Activity的类,一般在BaseActivity会调用这个类,然后所有的Activity继承BaseActivity,这样管理好整个项目的Activity。
// activity堆栈管理public class ActivityStackManager { private static ActivityStackManager mInstance; private static Stack<Activity> mActivityStack; public static ActivityStackManager getInstance() { if (null == mInstance) { mInstance = new ActivityStackManager(); } return mInstance; } private ActivityStackManager() { mActivityStack = new Stack<Activity>(); } // 入栈 public void addActivity(Activity activity) { mActivityStack.push(activity); } // 出栈 public void removeActivity(Activity activity) { mActivityStack.remove(activity); } // 彻底退出 public void finishAllActivity() { Activity activity; while (!mActivityStack.empty()) { activity = mActivityStack.pop(); if (activity != null) { activity.finish(); } } } // 结束指定类名的Activity public void finishActivity(Class<?> cls) { for (Activity activity : mActivityStack) { if (activity.getClass().equals(cls)) { finishActivity(activity); } } } // 查找栈中是否存在指定的activity public boolean checkActivity(Class<?> cls) { for (Activity activity : mActivityStack) { if (activity.getClass().equals(cls)) { return true; } } return false; } // 结束指定的Activity public void finishActivity(Activity activity) { if (activity != null) { mActivityStack.remove(activity); activity.finish(); activity = null; } } // finish指定的activity之上所有的activity public boolean finishToActivity(Class<? extends Activity> actCls, boolean isIncludeSelf) { List<Activity> buf = new ArrayList<Activity>(); int size = mActivityStack.size(); Activity activity = null; for (int i = size - 1; i >= 0; i--) { activity = mActivityStack.get(i); if (activity.getClass().isAssignableFrom(actCls)) { for (Activity a : buf) { a.finish(); } return true; } else if (i == size - 1 && isIncludeSelf) { buf.add(activity); } else if (i != size - 1) { buf.add(activity); } } return false; }}
文/Penny08(简书作者)
原文链接:http://www.jianshu.com/p/ed897d567b02
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/ed897d567b02
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- Android堆栈管理的类ActivityStackManager
- Android中堆栈管理
- 封装Activity的堆栈管理类。
- 推荐比较好的Android 堆栈管理的文章
- Android-activity堆栈及管理
- Android App堆栈内存管理
- Android 堆栈式管理Activity
- Android 堆栈式管理Activity
- android 的堆栈调试
- 自定义Activity堆栈管理类
- Android技术揭秘之activity堆栈管理
- Android activity堆栈及管理实例详解
- Android堆栈管理工具类
- JVM内存管理,虚拟机堆栈的理解
- c++的内存管理 之 堆栈
- android java 堆栈的实现
- Android中堆栈的处理
- Qt布局管理-堆栈窗体QStackedWidget类
- JAVA利用HttpClient进行POST请求(HTTPS)
- 【模板】搜索
- RobotFrameWork(二)Ride简单使用及快捷键
- Jsp 的请求与重定向
- js的笔记11.16
- Android堆栈管理的类ActivityStackManager
- iOS画柱状图,折线图
- Eclipse中LogCat如何打开
- MFC 自定义子线程新建对话框的数据传输问题 -- 以及由此对MFC的一些思考
- 机器学习 - 感知机(PLA, Perceptron Learning Algorithm)
- android:windowSoftInputMode
- 线性代数的本质-20160614总结
- codevs 1003 电话连线
- JAVA 复习