在项目的开发中,一般都是要封装一个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,全局的观察者模式
未完待续