美文网首页
阅读代码有感

阅读代码有感

作者: ZZZ_Hero | 来源:发表于2017-03-24 10:53 被阅读15次

    最近在做项目的功能优化,其中遇到一些小的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、可通过广播传值,不过稍显得有些浪费
    **

    相关文章

      网友评论

          本文标题:阅读代码有感

          本文链接:https://www.haomeiwen.com/subject/eewxottx.html