ActivityManager的使用

来源:互联网 发布:windows桌面文件路径 编辑:程序博客网 时间:2024/05/21 22:25

我们再开发的时候,往往会碰到,当用户完成某个操作的时候,前期经历的页面都在后台关闭,而操作失败,则页面不关闭,那么我们就想到了ActivityManager的使用(上一篇文章写的使用任务栈的方式,因为任务栈的特点,完成不了更多的需求,所以放弃)

ActivityManager代码

import android.app.Activity;import android.util.Log;import java.util.ArrayList;import java.util.List;/** * Activity管理类 */public class ActivityManager {    public static ActivityManager mActivityManager;    /**     * 存放Activity的map     */    private List<Activity> mActivities = new ArrayList<Activity>();    //将构造方法私有化,所以不能通构造方法来初始化ActivityManager    private ActivityManager() {    }    ;    //采用单例模式初始化ActivityManager,使只初始化一次    public static ActivityManager getInstance() {        if (mActivityManager == null) {            mActivityManager = new ActivityManager();        }        return mActivityManager;    }    //添加activity    public void addActivity(Activity activity) {        if (!mActivities.contains(activity)) {            mActivities.add(activity);        }    }    //关闭指定的Activity    public void removeActivity(Activity activity) {        if (activity != null) {            if (mActivities.contains(activity)) {                mActivities.remove(activity);            }            activity.finish();            activity = null;        }    }    //将activity全部关闭掉    public void clearAll() {        for (Activity activity : mActivities) {            activity.finish();        }    }    //将activity全部关闭掉,除掉MainAcitiy    public void clearOther() {        for (Activity activity : mActivities) {            Log.e("eerrree", activity.getClass().getSimpleName());            if (activity.getClass().getSimpleName().equals("MainActivity")) {                continue;            }            activity.finish();        }    }}

第二步,在我们封装的Base的OnCreat方法中调用,

activitymanager = ActivityManager.getInstance();
activitymanager.addActivity(this);

这样所有集成Base的页面都会被存入集合中,待需要的时候关闭

0 0
原创粉丝点击