retrofit总结
2019-12-06 本文已影响0人
couriravant
1.在使用Retrofit的时候,我们在通过[Builder模式]获取到Retrofit对象之后,需要通过create方法来获取到接口对象
- 在retorfit.create中,在动态代理中根据接口参数和注解参数,生成ServiceMethod对象,传入OkHttpCall中,构建OkHttp的请求。
3.通过CallAdapter的adapt转换成Rxjava的observable类型。 - 构建OkHttpCall的参数中有httpExecutor线程池,
private static final Executor sExecutor = Executors.newCachedThreadPool(new ThreadFactory() {
@Override
public Thread newThread(final Runnable r) {
return new Thread(new Runnable() {
@Override
public void run() {
Process.setThreadPriority(THREAD_PRIORITY_BACKGROUND);
r.run();
}
}, IDLE_THREAD_NAME);
}
});
- 通过CallbackExecutor将结果返回给主线程
static class MainThreadExecutor implements Executor {
private final Handler handler = new Handler(Looper.getMainLooper());
@Override public void execute(Runnable r) {
handler.post(r);
}
}