android常用封装 --- BaseActivity

来源:互联网 发布:凯撒博尔吉亚 知乎 编辑:程序博客网 时间:2024/06/13 17:22
public abstract class BaseActivity extends Activity {    /**     * 记录处于前台的Activity     */    private static BaseActivity mForegroundActivity = null;    /**     * 记录所有活动的Activity     */    private static final List<BaseActivity> mActivities = new LinkedList<BaseActivity>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        initView();        initFindViewById();        initData();        initEvent();        // initActionBar();    }    @Override    protected void onResume() {        mForegroundActivity = this;        super.onResume();    }    @Override    protected void onPause() {        mForegroundActivity = null;        super.onPause();    }    abstract protected void initView();    abstract protected void initData();    protected void initActionBar() {    }    /**     * 关闭所有Activity     */    public static void finishAll() {        List<BaseActivity> copy;        synchronized (mActivities) {            copy = new ArrayList<BaseActivity>(mActivities);        }        for (BaseActivity activity : copy) {            activity.finish();        }    }    /**     * 关闭所有Activity,除了参数传递的Activity     */    public static void finishAll(BaseActivity except) {        List<BaseActivity> copy;        synchronized (mActivities) {            copy = new ArrayList<BaseActivity>(mActivities);        }        for (BaseActivity activity : copy) {            if (activity != except)                activity.finish();        }    }    /**     * 是否有启动的Activity     */    public static boolean hasActivity() {        return mActivities.size() > 0;    }    /**     * 获取当前处于前台的activity     */    public static BaseActivity getForegroundActivity() {        return mForegroundActivity;    }    /**     * 获取当前处于栈顶的activity,无论其是否处于前台     */    public static BaseActivity getCurrentActivity() {        List<BaseActivity> copy;        synchronized (mActivities) {            copy = new ArrayList<BaseActivity>(mActivities);        }        if (copy.size() > 0) {            return copy.get(copy.size() - 1);        }        return null;    }    protected void initFindViewById() {    }    protected void initEvent() {    }    /**     * 退出应用     */    public void exitApp() {        finishAll();        android.os.Process.killProcess(android.os.Process.myPid());    }}

1 0
原创粉丝点击