现在Android前端开发,流行的开发框架是RxJava2+Retrofit2+OKHttp模式。当然既然大流如此,当然有它的过人之处,用过后我个人感觉确实牛逼,小见解:线程切换方便,个人定制化,自定义容易多了,尤其是RxJava2较与RxJava还添加了背压这个理念。推荐不错一个RxJava2.0简书系列,作者新颖的“水管”讲述方式着实厉害,入门容易多了。
各自的职责:Retrofit 负责请求的数据和请求的结果,使用接口的方式呈现;OkHttp 负责请求的过程;RxJava 负责异步,各种线程之间的切换。
我当前维护了一个小项目一直用的xUtils2.6的版本,想着更新维护一下,就想到了现在比较不错的3.0版本xUtils3(xUtils3Git地址),该框架封装的还是比较完善的,具体操作的使用方法详情看https://blog.csdn.net/tyk9999tyk/article/details/53306035,我呢就是代码的搬运工,哈哈。但是有一点是他们都没具体说明同步的怎么使用,我也是在这里遇到了问题,我们都知道网络连接这种耗时操作在安卓中最好事在子线程中进行。我刚开始把xUtils3的Get请求放在了主线程中,死活接收不到回传数据,究其原因目前未知,只得操作与子线程,测试ok成功。
get方式
new Thread(new Runnable() {
@Override
public void run() {
//同步必须在子线程中进行
RequestParams params = new RequestParams("https://api.douban.com/v2/movie/in_theaters");
// 默认缓存存活时间, 单位:毫秒(如果服务器没有返回有效的max-age或Expires则参考)
JSONObject jsonObject;
try {
jsonObject = x.http().getSync(params, JSONObject.class);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
}).start();
post方式
new Thread(new Runnable() {
@Override
public void run() {
//同步必须在子线程中进行
RequestParams params = new RequestParams("https://api.douban.com/v2/movie/in_theaters");
// 默认缓存存活时间, 单位:毫秒(如果服务器没有返回有效的max-age或Expires则参考)
JSONObject jsonObject;
try {
jsonObject = x.http().postSync(params, JSONObject.class);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
}).start();
以上纯属个人见解,在此记录一下,如有失误,请谅解,毕竟萌新一枚!!!欢迎修正
网友评论