最近在做项目的功能优化,其中遇到一些小的bug,虽然很小,但是也花了不少的时间解决
持续的更新中。。。。。
这次的工作是接手原本的项目,因此大体的代码都是别的工程师写好的,在改动的过程中,需要整理清楚之前的逻辑了解之前的代码风格。
阅读代码建议:
1、看别人的代码,首先要先把App放在手机上测测,了解大体上的功能和界面框架,在慢慢的深入功能的实现
2、在此之后的修改中,要保证之前的功能逻辑,包括界面之前的跳转方式,网络请求方式,数据存储方式等
阅读后感:
针对上面的几个方面进行本次项目的介绍:
页面中底层是acticity继承与FragmentActivity,在activity之上嵌套多个fragment,可以在activity中管理碎片的生命周期,不用在单独对每个碎片管理。
当碎片不可见时,把碎片加入到回退栈中。fragment通过addfragment存在与宿主activity,也可通过传入不同的flag在activity中生成fragmen,每个fragment都是单列。
针对Fragment多层嵌套所遇到的坑,参考-----fragment嵌套
在fragment的嵌套中,生成fragment的方式都是单例,这样减少出现fragment之间的重叠
参考-------单例模式
网咯请求方式:
网络请求采用的是HttpClient
通过一个接口封装的网络请求方法,再创建接口的实现类,实现每个网络请求方法。网络请求的方式通过异步任务实现,创建每个网络请求的异步任务,并在任务中实现异步的监听,通过监听回调数据
封装异步任务代码展示:
public class SendDeviceServiceJsonTask extends AsyncTask<String, Void, MessageForSendDevice> {
private AsyncTaskListener<MessageForSendDevice> mListener;
private String content;
public SendDeviceServiceJsonTask(AsyncTaskListener<MessageForSendDevice> listener) {
// TODO Auto-generated constructor stub
mListener = listener;
}
@Override
protected MessageForSendDevice doInBackground(String... params) {
// TODO Auto-generated method stub
String orderno = params[0];
String deliverycompany = params[1];
String deliveryni = params[2];
String mdtid = params[3];
SettingServiceImpl service = (SettingServiceImpl) ServicesFactory.getServices(ServicesName.SettingService);
MessageForSendDevice result = service.sendDevice(orderno, deliverycompany, deliveryni, mdtid);
return result;
}
@Override
protected void onPostExecute(MessageForSendDevice result) {
// TODO Auto-generated method stub
try {
mListener.onPostExecute(result);
} catch (Exception e) {
// TODO: handle exception
}
}}
数据存储方式:
传值主要发生在fragment之间,
参考---------fragment传值的三种方式,
除了fragment之见需要相互传值以外,各组件之间也需相互传值,这里给出一个发布订阅的事件总线,用于各组件之间传值,参考---------EventBus
1、可通过在Activity中设置公共的setData(),getData()方法
2、可通过在Activity中设置公共变量传值
3、可通过广播传值,不过稍显得有些浪费
**