封装Activity的堆栈管理类。
2017-12-22 12:35
316 查看
前言
提供一个工具类,应用场景: A、B、C 为三个不同的 activity当我们从 A 跳转到 B, 再从 B跳转到 C ,此时,我们有这样一个需求,就是如何从 C 跳转到 A ,难道我们还要 new 一个 intent 吗,不,我们只需要移除 B 这个堆栈 直接把 C finish()就行了。
这个工具类可以应用到项目中,在BaseActivity onCreate()方法中,调用 AppMannager.getInstance().addActivity(Activity activity);在onDestroy()方法中调用AppMannager.getInstance().deleteActivity(Activity activity);
这样我们就可以清楚的知道堆栈中的情况了。
代码
import android.app.Activity; import java.util.Stack; public class AppMannager { private static AppMannager appManager ; private Stack<Activity> listActivitys = new Stack<>(); /* * 得到实例 * */ public static AppMannager getInstance(){ if(appManager == null) { appManager = new AppMannager(); } return appManager ; } /* * 添加actviity * */ public void addActivity(Activity activity){ listActivitys.add(activity) ; } /* * 移除activity * */ public void removeActivity(Activity activity){ for(int i = 0 ; i < listActivitys.size() - 1; i ++) { if(listActivitys.get(i).getClass().equals(activity.getClass())) { activity.finish(); listActivitys.remove(activity); } } } /* * 移除当前的activity 的栈 * */ public void removeCurrent( ){ Activity activity = listActivitys.lastElement(); //最上面的 也就是第一个栈 activity.finish(); listActivitys.remove(activity); } /* * 移除所有的栈 * */ public void removeAll(){ for(int i = listActivitys.size() - 1 ; i >= 0 ; i -- ) { listActivitys.get(i).finish(); listActivitys.remove(i); } } /* * 得到当前的栈 * */ public int getStackSize(){ return listActivitys.size() ; } }
相关文章推荐
- 【Android】Android开发之Activity的管理类,结束关闭指定的Activity,单例模式封装
- [置顶] 【Android】Android开发之Activity的管理类,结束关闭指定的Activity,单例模式封装
- Activity的管理类
- Android 任务和回退堆栈---保存Activity状态
- 【Android 进阶】Activity 、Fragment 和 Presenter 的高层封装
- Android - 封装Fragment不依赖于Activity
- Activity 之间 传递 List 封装的对象或者对象
- Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(一)
- Volley的使用(三):Volley与Activity的联动 + Volley的二次封装
- 开源中国客户端Activity管理类(可直接用到项目中)
- 封装一个MPermissionsActivity的思路和步骤
- ActivityManagerService的启动和ActivityManagerService对Activity堆栈的管理
- 封装View,封装逻辑,脱光activity
- Android Activity整体管理和关闭工具类封装
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 【Android】切换Activity时使用Bundle封装Map对象
- Android--带你一点点封装项目 MVP+BaseActivity+Retrofit+Dagger+RxJava(二)
- BaseActivity的封装思想
- Activity和fragment的封装
- android Activity 堆栈和亲属关系