您的位置:首页 > 移动开发 > Android开发

Android项目重构

2016-06-30 10:38 393 查看
废话不多说,直入主题

·1.为Activity 定义新的生命周期

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//        Log.i("NowActivity is", getClass().getName());
setContentView(R.layout.test_layout);
result = (TextView) findViewById(R.id.result);

}
经常我们在写Activity 的时候onCreate 做的事情太多了, 初始化变量,点击事件有时候还调用MobileAPI获取数据。

于是我们定义一个BaseActivity 重写onCreate 方法

public abstract class BaseActivity extends Activity {

protected SumpayPlugWeb<PaymentParam> web;
protected TextView result;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//        Log.i("NowActivity is", getClass().getName());
initVariables();
initWidget();
loadDate();

}

public void onClick(View v) {

}

protected abstract void initWidget();
protected abstract void loadDate();
protected abstract void initVariables();
}
重写Activity 让所有的Activity集成BaseActivity 

@Override
protected void initWidget() {
setContentView(R.layout.test_layout);
result = (TextView) findViewById(R.id.result);
}

@Override
protected void loadDate() {

}

@Override
protected void initVariables() {

}
对Activity 生命周期重新定义是借鉴了javaScript 的做法。

对点击事件我们有些人喜欢在Activity 上直接实现

OnClickListener


@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.backBtn:

break;
default:
break;
}
}


其实这种方法并不好,

1switch 放入的是 整型或字符型变量 

2直接在控件上增加点击事件是面向对象的写法,可以将onclick 的实现封装到另一个方法里,这样方法就不onclick方法就不会显得很臃肿.

btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
moth();
}
});

private void moth(){
}
网络获取的json数据不要使用JsonObject 和JsonArray 解析,要使用fastJson 和Gson解析。

Adapter 要添加Holder 可以避免频繁的创建同一个列表项,从而极大地节省内存

数据类型的转换不正确导致崩溃占了很大的比例

我们可以将数据转换函数做好判断封装到util 类中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android 重构优化