跳到正文
Pollex's blog
返回

BaseActivity封装技巧

目录

在项目的开发中,一般都是要封装一个BaseActivity来做一些常用的动作的,下面就是我在项目中用到的一些简单封装。

1,统计

在BaseActivity的生命周期中调用统计部分的代码,这样可以省去在不同的界面重复编写统计代码的工作。

    @Override
    public void onResume() {
        super.onResume();
        AnalyticsHelper.getInstance().onResume(this);
    }
    
        @Override
    protected void onPause() {
        super.onPause();
        AnalyticsHelper.getInstance().onPause(this);
    }

2,ProgressDialog

配置一个通用的ProgressDialog是非常有用的,这样在接口请求的时候,直接调用显示,数据返回后调用消失,超级爽!!!

	//显示ProgressDialog
    public ProgressDialog progressDialog;

    public void showProgressDialog() {
        if (progressDialog == null) {
            progressDialog = new ProgressDialog(this);
            progressDialog.show();
        } else {
            if (!progressDialog.isShowing()) {
                progressDialog.show();
            }
        }
    }
    
    //隐藏ProgressDialog
    public void cancelProgressDialog() {
        if (progressDialog != null && progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
    }
    

注意: 要在OnDestory()中调用cancelProgressDialog()一下,防止Activity has leaked window错误。

4,全局handler

如果习惯用Thread+Handler来异步操作数据并刷新界面的话,每个界面都定义一遍Handler对象是非常烦人的,所以可以在BaseActivity中定义一个Handler对象,快捷又方便。

    public Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            HandleMessage(msg);
        }
    };

    /**
     * 复写来处理mHandler发来的消息
     * @param msg
     */
    public void HandleMessage(Message msg){};
    
    @Override
    protected void onDestroy() {
        mHandler.removeCallbacksAndMessages(null);
        super.onDestroy();
    }

注意: 要在OnDestory()中调用mHandler.removeCallbacksAndMessages()方法,否则会出现handler内存泄露问题。

5,全局的观察者模式

未完待续


分享这篇文章:

上一篇
WebView的优化总结
下一篇
奇葩问题的记录