【Android】Android开发之Activity的管理类,结束关闭指定的Activity,单例模式封装

2016/10/27 21:45
阅读数 609

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing

长期维护的Android项目,里面包括常用功能实现,以及知识点详解,
当然还有Java中的知识点。具体请看github:

https://github.com/QQ986945193/DavidAndroidProjectTools

说明,当我们需要结束某一个activity时,就可以用到此工具类,结束任何指定的activity均可。当然也可以用其它方法,我封装了一个这样的工具类。你也可以用得到。代码比较简单,使用起来也比较简单。为什么叫做activity的管理类呢,所以,你要管理某个activity时,前提需要某个activity添加进去,不然是没法管理的,添加很简单。只需要调用下面这一行代码即可:

 ActivityManagerUtils.getInstance().addActivity(this);

这样我们就可以管理这个类了。比如结束当前activity可以调用:

                    ActivityManagerUtils.getInstance().finishActivity(SystemAppFourMethodActivity.this);

当然我们也可以结束关闭不是当前的activity,代码如下:

                    ActivityManagerUtils.getInstance().finishActivityclass(SystemAppFourMethodActivity.class);

好了,用法到此结束,下面是activity的管理类的代码,大家可以直接粘贴到自己的项目当中即可。

package davidandroidprojecttools.qq986945193.com.davidandroidprojecttools.utils;


import android.app.Activity;

import java.util.ArrayList;
import java.util.List;

/** * @author :程序员小冰 * @新浪微博 :http://weibo.com/mcxiaobing * @GitHub: https://github.com/QQ986945193 * @CSDN博客: http://blog.csdn.net/qq_21376985 * @交流Qq :986945193 * 类名:activity的管理类 */
public class ActivityManagerUtils {
    private static ActivityManagerUtils mActivityManagerUtils;


    static {
        mActivityManagerUtils = new ActivityManagerUtils();
    }

    private ActivityManagerUtils() {
        /** * 这里面写一些需要执行初始化的工作 */
    }

    public static ActivityManagerUtils getInstance() {
        return mActivityManagerUtils;

    }

    /** * 打开的activity **/

    private List<Activity> activities = new ArrayList<Activity>();


    /** * 新建了一个activity * * @param activity */

    public void addActivity(Activity activity) {
        activities.add(activity);
    }

    /** * 结束指定的Activity * * @param activity */

    public void finishActivity(Activity activity) {

        if (activity != null) {
            this.activities.remove(activity);
            activity.finish();
        }
    }

    /** * 应用退出,结束所有的activity */

    public void exit() {

        for (Activity activity : activities) {
            if (activity != null) {
                activity.finish();
            }
        }
        System.exit(0);

    }

    /** * 结束指定类名的Activity */
    public void finishActivityclass(Class<?> cls) {
        if (activities != null) {
            for (Activity activity : activities) {
                if (activity.getClass().equals(cls)) {
                    this.activities.remove(activity);
                    finishActivity(activity);
                    break;
                }
            }
        }

    }

}
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部