activity管理

来源:互联网 发布:mac flash player 21 编辑:程序博客网 时间:2024/06/10 19:17

activity管理

public class ActivityMgr{    private Stack<Activity> mStack;    private static ActivityMgr mActivityMgr;    private ActivityMgr(){        mStack = new Stack<Activity>();    }    public static ActivityMgr getInstance(){        if(mActivityMgr == null){            synchronized(ActivityMgr.class){                if(mActivityMgr == null){                    mActivityMgr = new ActivityMgr();                }            }        }        return mActivityMgr;    }    public void push(Activity acti){        if(mStack!=null&&!mStack.contains(acti)){            mStack.push(acti);        }    }    public void remove(Activity acti){        if(mStack!=null&&mStack.contains(acti)){            mStack.remove(acti);        }    }    public int getAcitSize(){        int actiSize = 0;        if(mStack!=null){            actiSize=mStack.size();        }        return actiSize;    }    public Activity getStackTopActivity(){        Activity topActi=null;        if(mStack!=null&&!mStack.isEmpty()){            topActi=mStack.peek();        }        return topActi;    }    public void finishAllActi(){        if(mStack!=null&&!mStack.isEmpty()){            int size = mStack.size();            for(int i=0;i<size;i++){                Activity acti =mStack.get(i);                acti.finish();            }            mStack.clear();        }    }    public void finishActiByClsName(String clsName){        if(mStack!=null&&!mStack.isEmpty()){            int size = mStack.size();            Activity desActi=null;            for(int i=0;i<size;i++){                Activity acti =mStack.get(i);                if(acti.getClass().getName().equals(clsName)){                    desActi =acti;                    break;                }            }            if(desActi!=null){                desActi.finish();            }        }    }    public void finishBeforeActi(String clsName){        int indexOfActi = indexOfActi(clsName);        if(indexOfActi==-1) return;        if(mStack!=null&&!mStack.isEmpty()){            int size = mStack.size();            for(int i=(size-1);i>indexOfActi;i--){                mStack.get(i).finish();            }        }    }    public int indexOfActi(String clsName){        if(mStack!=null&&!mStack.isEmpty()){            int size = mStack.size();            for(int i=0;i<size;i++){                Activity acti =mStack.get(i);                if(acti.getClass().getName().equals(clsName)){                    return i;                }            }        }        return -1;    }    public boolean existActi(String clsName){        if(mStack!=null&&!mStack.isEmpty()){            int size = mStack.size();            for(int i=0;i<size;i++){                Activity acti =mStack.get(i);                if(acti.getClass().getName().equals(clsName)){                    return true;                }            }        }        return false;    }    private void release(){        finishAllActi();        if(mStack!=null){            mStack.clear();            mStack=null;        }    }    public static void destroy(){        if(mActivityMgr!=null){            mActivityMgr.release();            mActivityMgr=null;        }    }}
0 0
原创粉丝点击