android activity的管理类的实现

来源:互联网 发布:工信部 域名备案 编辑:程序博客网 时间:2024/05/21 09:27

一个全聚德activity manager类

public class AppManager {    private static Stack<Activity> activityStack;    private static AppManager instance;    public AppManager() {    }    /**     * 单一实例     */    public static AppManager getAppManager() {    if(instance==null) {        instance=new AppManager();       }        return  instance;       }    /**     * 添加activity到堆栈     */    public void addActivity(Activity activity){        if(activityStack==null){            activityStack=new Stack<Activity>();        }        activityStack.add(activity);    }    /**     * 获取当前的activity(堆栈中最后一个押入的)     */    public Activity currentActivity(){        Activity activity=activityStack.lastElement();     return  activity;    }    /**     * 结束指定的activity     */    public void finishActivity(Activity activity){        if(activity!=null&&!activity.isFinishing()){            activityStack.remove(activity);            activity.finish();            activity=null;        }    }    /**     * 结束指定类名的activity     */    public void finishActivity(Class<?> cls){        for(Activity activity:activityStack){            if(activity.getClass().equals(cls)){                finishActivity(activity);                break;            }        }    }    /**     * 结束所有的activity     */    public void finishAllActivity(){        for(int i=0,size=activityStack.size();i<size;i++){            if(null!=activityStack.get(i)){                finishActivity(activityStack.get(i));                break;            }        }        activityStack.clear();    }    /**     * 获取指定的Activity     *     */    public static Activity getActivity(Class<?> cls) {        if (activityStack != null)            for (Activity activity : activityStack) {                if (activity.getClass().equals(cls)) {                    return activity;                }            }        return null;    }    /**     * 退出应用程序     */    public void AppExit(Context context){        finishAllActivity();        //杀死应用进程        android.os.Process.killProcess(Process.myPid());        System.exit(0);    }}
0 0