本文将提供RxJava2+retrofit2网络框架封装的一个参考。
博主之前用的是RxJava1,最近在此基础上改造成了RxJava2,说好的GitHub传送门: https://github.com/Liiking/Rx2Library ,还是有些不完善的地方,希望大家多提意见建议。
总体来说,此框架包括统一异常处理,加载框,取消订阅,拦截器(日志、加密、请求头),文件上传下载模块(支持断点续传)等。将订阅者周期和activity或fragment的生命周期绑定,防止RxJava的内存泄漏。
为方便修改,此项目没有抽成library,只是框架封装和功能演示,使用方法可参照MainActivity中的示例代码。需要先在application中初始化。
来个请求示例:
Map<String, String> p = new HashMap<>();
p.put("key", "value");
ApiManager.getInstance()
.requestPost(MainActivity.this, getDisposableFlag(), URL_TEST_PATH, Object.class, p, new SubscriberListener<Object>() {
@Override
public void onNext(Object obj) {
// TODO your own things
}
});
上个页面效果图: