Android在开发中的实用技巧android技术专栏Android开发

Android在开发中的实用技巧之ActivityCollect

2016-10-29  本文已影响1114人  coexist
根据已上线的app里总结出来的实用小技巧

当你在项目中觉得自己的Activity过多不好管理时, 你可以尝试写一个ActivityCollector来管理#####
public static void addActivity(Activity activity) {
        activitys.add(activity);//把传入的Activity添加到List中
}
public static void removeActivity(Activity activity) {    
        activitys.remove(activity);//根据传入的Activity来删除
}
public static void removeAll() {
    for (Activity activity : activitys) {
        if (!activity.isFinishing()) {
            activity.finish();
        }
     }
}
    /**
     * 除了传来的Activity其他的全部删除
     * 可以传多个Activity
     * @param clazz
     */
      public static void removeAll(Class<?>... clazz) {
        boolean isExist = false;
        for (Activity act : activitys) {
            for (Class c : clazz) {
                if (act.getClass().isAssignableFrom(c)) {
                    isExist = true;
                    break;
                }
            }
            if (!isExist) {
                if (!act.isFinishing()) {
                    act.finish();
                }
            } else {
                isExist = false;
            }
        }
    }
    /**
     * 从Activity集合查询, 传入的Activity是否存在
     * 如果存在就返回该Activity,不存在就返回null
     * @param activity 需要查询的Activity, 比如MainActivity.class
     * @return
     */
    public static Activity getActivity(Class<?> activity) {
        for (int i = 0; i < activitys.size(); i++) {
            // 判断是否是自身或者子类
            if (activitys.get(i).getClass().isAssignableFrom(activity)) {
                return activitys.get(i);
            }
        }
        return null;
    }
上一篇 下一篇

猜你喜欢

热点阅读