NeoBaseLib库

2016-12-14  本文已影响14人  Neo_duan

NeoBaseLibV2

Android BaseLib Version 2

2017-06-01

接口请求说明:

技术选型:

UI篇:

-BaseActivity封装了顶部和内容布局,未完待续
同理BaseFragment

网络框架篇:

HttpLoader处理所有请求:
    HttpLoaderConfiguration configuration = new HttpLoaderConfiguration.Builder()
                .setServerHost(Constants.SERVER_HOST) //配置服务器地址
                .setEnableCache(false) //是否开启网络缓存
                .setTimeout(15) //超时时间设置,单位秒
                .setHttpHandler(HttpHandler.class) //设置网络返回处理类
                .build();
    HttpLoader.getInstance().init(configuration);
    
    HttpHandler:
        extends BaseHttpHandler,并实现方法,可参考DefaultHttpHandler

图片加载篇:

使用Facebook出品的Fresco加载图片,并且封装在XImageView中,App使用的所有需要加载网络图篇的请求请使用XImageView引用,
方便日后的框架替换和维护

业务逻辑MVP:

采用MVP方式:
    -M:即MVP包中interactor包,代表数据提供器
    -V:在contract契约类中,操作VIew层的接口
    -P:即MVP包中的present包,代表业务处理
    管理mvp:引入contract契约类管理mvp接口,减少类的数量

Application理解

Fragment

常见内存泄露

WebView

//设置5.0以上开启混合模式
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

销毁:
 mWebView.clearCache(true);
    //1.解除webView与父控件的依附关系 2.解决退出页面音频还在播放问题
    mRlWebViewRoot.removeView(mWebView);
    mWebView.removeAllViews();
    mWebView.setVisibility(View.GONE);
    mWebView.destroy();
    
    //防止Https请求网页空白
    @Override
     public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
         //handler.cancel(); 默认的处理方式,WebView变成空白页
         handler.proceed();
         //handleMessage(Message msg); 其他处理
     }
上一篇 下一篇

猜你喜欢

热点阅读