应用的更新
从服务器拿数据后要处理得到数据为空、解析错误、解析为空的情况,防止后台坏掉后进不去activity;
用友盟等平台更新不能阻塞式强制更新,万一友盟维护了,应用就进不去了。
命名规则
布局中id的命名:尽量保证不同布局xml文件中不要有相同的id命名,不然ctrl想点进去的时候,不知道该跳转到哪个文件,当注释掉该控件后代码仍不会报错,运行时无响应且log打印不出错误,建议以文件或功能名开头命名控件;
view控件的命名:从其他项目复制代码过来之后,先将view控件的命名改为自己习惯的命名,不然会大大增加阅读别人代码的难度;
代码分离
通过构造参数将view传递进asynctask进行操作,而不需要传递context,从而把asynctask分类出来
public ProgramTask(TextView text) {
this.text = text;
}
protected void onPostExecute(String result) {
// Log.d("===", "onPostExecute ====================>");
text.setText(result);
}
@Override
protected void onPreExecute() {
// 任务启动,可以在这里显示一个对话框,这里简单处理
text.setText("正在播出:");
}
//
// @Override
// protected void onProgressUpdate(Integer... values) {
// // 更新进度
// System.out.println(""+values[0]);
// message.setText(""+values[0]);
// pdialog.setProgress(values[0]);
// }
布局文件的简化
相同的布局属性通过style提取出来
<ImageView
style="@style/home_btn_img"
android:src="@drawable/homeimg_01" />
放到styles.xml中
<style name="home_btn_style">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_weight">1</item>
<item name="android:onClick">onClick</item>
<item name="android:gravity">center</item>
<item name="android:layout_margin">8dp</item>
<item name="android:orientation">vertical</item>
</style>
源码嫁接维护
分析别人的代码时,分析出一点,为一点代码抽出模块,并为变量更名为自己的习惯,并尽可能详细的添加注释,不然第二次看的时候又要重头分析,包括class类的功能说明,函数功能说明,参数说明,应用application中书写启动流程过程说明,布局文件中布局块功能说明