Android中使用Stack对Activity的管理
2016-07-15 19:03
435 查看
由于在实际的工作中可能存在这样的情况:有4个页面A-->B-->C-->D在跳到D页面的时候按back想要的结果是直接到A界面去,当然这样的情况很少但是也不是没可能,于是可以用下面的类来实现对activity的管理;当然不是上面的情况向通过下面的类来正常的管理自己app中activity也是很合适的,避免anr很有好处;
代码如下:
代码如下:
package com.buka.sdk.stack; import android.support.v4.app.FragmentActivity; import java.util.Stack; /** * Created by gxo on 2016/7/15. */ public class StackManager { private static Stack<FragmentActivity> mStack; private static StackManager instance; private StackManager(){ } public static StackManager getInstance() { if (instance == null) { instance = new StackManager(); } return instance; } /**加入stack中 * */ public void pushActivityToStack(FragmentActivity activity){ if (mStack == null){ mStack = new Stack<FragmentActivity>(); } mStack.push(activity); } public FragmentActivity currentActivity(){ FragmentActivity fragmentActivity = mStack.lastElement(); return fragmentActivity; } /**删除stack顶上的 * */ public void popActivity(){ FragmentActivity activity = mStack.lastElement(); if (activity != null){ activity.finish(); activity = null; } } /**删除某个 * */ public void removeActivity(FragmentActivity activity){ if (activity != null){ activity.finish(); mStack.remove(activity); activity = null; } } /**删除全部除了传入的这个类 * */ public void removeActivityExceptOne(Class cls){ while (true){ FragmentActivity activity = currentActivity(); if (activity == null){ break; } if (activity.getClass().equals(cls)){ break; } removeActivity(activity); } } public void popAll(){ while (!mStack.empty()){ mStack.pop().finish(); } } }
相关文章推荐
- Fragment有参构造提示Avoid non-default constructors in fragments: 解决方案
- Android中的URL Scheme
- Android surfaceview详解
- Android的配置设置
- [置顶] 从零开始打造一个Android 3D立体旋转容器
- TabLayout,ViewPager,Fragment组合页卡
- Android aar打包及引用
- 解决Android中多次点击启动多个相同界面的问题
- 【转】Android Studio系列教程六--Gradle多渠道打包
- Android后台保活实践总结:即时通讯应用无法根治的“顽疾”
- android视频播放之JieCaoVideoPlayer全能播放器
- Android的Drawable
- 【NFC】在Android中访问内置SE和基于SE的卡模拟
- WindowManager是个啥?
- 详细解析RxAndroid的使用方式
- android写回调函数的写法和调用
- 【Android】使用Gradle实现分渠道打包,指定应用名称,应用图标,应用标识和环境切换
- Android Manifest 权限描述大全
- 通俗解释Android studio中gradle的作用
- Android Studio下Svn与Git的使用