Activity与class获取类名的方式不同
2017-07-19 23:32
246 查看
//Activity与class获取类名的方式不同 if(act.getClass().getName().equals(activity.getName())){ index = activityList.indexOf(act); break; } ------------------- package com.example.testand; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; public class CardActivitySkipUtil extends Application { private List<Activity> activityList = new LinkedList<Activity>(); private static CardActivitySkipUtil instance; private CardActivitySkipUtil() { } // 单例模式中获取唯一的MyApplication实例 public static CardActivitySkipUtil getInstance() { if (null == instance) { instance = new CardActivitySkipUtil(); } return instance; } // 添加Activity到容器中 public void addActivity(Activity activity) { activityList.add(activity); } // 遍历所有Activity并finish public void exit() { for (Activity activity : activityList) { activity.finish(); } } // finish当前 public void exit(Activity activity) { if(activityList != null && activityList.size() > 0) { int size = activityList.size(); activity.finish(); activityList.remove(size - 1); } } /** * finish多个activity, * @param activity(关掉这个activity后边的多个类) */ public void finishMultiAct(Class<?> activity) { if(activityList != null && activityList.size() > 0) { int size = activityList.size(); int start =thisActIndex(activity); if(start > -1){//activity存在 for (int i = start+1; i < size; i++) {//把后面的全部关掉 activityList.get(i).finish(); activityList.remove(size - 1); } } } } /** * 是否存在这个activity * @param activity * @return */ public boolean isHaveThisAct(Class<?> activity){ boolean isHave = false; for (Activity act : activityList) { if(act.getClass().getName().equals(activity.getName())){ isHave = true; break; } } return isHave; } /** * 是否存在这个activity,并返回其所在index * @param activity * @return -1 不存在 */ public int thisActIndex(Class<?> activity){ int index = -1; for (Activity act : activityList) { //Activity与class获取类名的方式不同 if(act.getClass().getName().equals(activity.getName())){ index = activityList.indexOf(act); break; } } return index; } /** * finish多个activity, * @param activity(关掉这个activity后边的多个类) */ public void finishMultiAct(Activity activity) { if(activityList != null && activityList.size() > 0) { int size = activityList.size(); int start =thisActIndex(activity); if(start > -1){//activity存在 for (int i = start+1; i < size; i++) {//把后面的全部关掉 activity.finish(); activityList.remove(size - 1); } } } } /** * 是否存在这个activity * @param activity * @return */ public boolean isHaveThisAct(Activity activity){ for (Activity act : activityList) { if(act.getClass().getName().equals(activity.getClass().getName())){ return true; } } return false; } /** * 是否存在这个activity,并返回其所在index * @param activity * @return -1 不存在 */ public int thisActIndex(Activity activity){ int index = -1; for (Activity act : activityList) { if(act.getClass().getName().equals(activity.getClass().getName())){ index = activityList.indexOf(act); break; } } return index; } public List<Activity> getActivityList() { return activityList; } public void setActivityList(List<Activity> activityList) { this.activityList = activityList; } }
相关文章推荐
- Fragment信息交互之不同Activity获取信息方式
- opencv 矩阵元素不同获取方式及其效率对比
- 使用PopupWindow和Activity两种不同的方式实现弹窗效果
- java获取class的几种方式
- Android之解决远程拍照不打开activity用其它方式获取surfaceView
- 根据不同的实例自动获取类名和属性(通用显示工具)
- 反射:Class获取的三种方式
- 不同方式打开activity既覆盖安装登陆后HOME键最小化后再进入重新登录问题
- 使用PopupWindow和Activity两种不同的方式实现弹窗效果
- WinAPI: GetClassName - 获取指定窗口的类名
- 返回上一层activity的实现方式(拓展:不同activity间的任意跳转)
- WinAPI: GetClassName - 获取指定窗口的类名
- 获取Class对象的三种获取方式:
- 获取Class对象的三种方式
- 黑马程序员--03.反射--02【Class类对象】【Class对象的获取方式】
- 【转】获取Activity启动时间的三种方式
- Android中通过view方式获取当前Activity的屏幕截图实现方法
- DELPHI GetClassName - 获取指定窗口的类名
- 获取Class对象的三种方式
- android 如何获取当前的Activity类名