性能优化模块预加载思路

来源:互联网 发布:路易斯康 知乎 编辑:程序博客网 时间:2024/06/05 19:37

在实际的开放中,有时候我门在开发的时候,会初始化就加载布局,

例如代码如下:

 private void initHolder() {        if (isContextNull()) {            return;        }        final IRoomList detailCacheBean = getCacheBean();        if (detailCacheBean == null ) {            return;        }        if (!(detailCacheBean instanceof HotelDetailRoomList)){            return;        }        mHotelSharePeacockHolder = new HotelSharePeacockHolder();        int shareLayoutID  =  R.layout.hotel_detail_share_peacock_layout;        ViewGroup shareView = (ViewGroup) View.inflate(getTargetActivity(), shareLayoutID, null);    }

我在写代码的时候,每次都需要去加载布局,这样会存在一些性能的损耗,最好的加载时机放在 需要加载该模块的时候去加载,那么对于我门公司的加载机制,如下

  @Override    protected void createAdapterInfo() {        if (isContextNull()) {            return;        }        mAdapterInfo = AdapterInfo.buildEmptyAdapterInfo(getTargetActivity(), new AdapterInfo.HeaderCreator("Test") {            @Override            public View onCreateHeaderView() {                View header = mHotelSharePeacockHolder.getView();                if(header == null){                    header = View.inflate(getTargetActivity(), R.layout.hotel_detail_share_peacock_layout, null);               mHotelSharePeacockHolder.setView(header);                }                header.setTag("header");                return header;            }            @Override            public void handleHeader(AdapterInfo adapterInfo) {                final IRoomList detailCacheBean = getCacheBean();                if (detailCacheBean == null || mHotelSharePeacockHolder.getView() == null) {                    return;                }                mHotelSharePeacockHolder.refreshView();            }            @Override            public View onCreatePinnedHeaderView() {                return null;            }        }, false);        mAdapterInfo.mShowHeaderWhenEmpty = false;    }

每个公司的实现方式不变,其实现在的代码业务页越来越繁杂,每个一步的性能优化就能起到逐步优化的效果

原创粉丝点击