- 博客(12)
- 资源 (4)
- 收藏
- 关注
原创 LruCache 原理
其他方法很简单,最核心的方法是trimToSize(): public void trimToSize(int maxSize) { while (true) { K key; V value; synchronized (this) { //参数异常 if (siz
2018-01-15 15:50:29 306
原创 retrofit 异步流程
直接上码: public void retrofit(View view) { Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASEURL) .build(); HttpService httpService = retrofit.create(HttpService.class); httpSer...
2018-01-12 17:24:03 564
原创 retrofit 整体构架认识
直接上图: OkHttpClient 也是外观类,参数太多不好画,也没必要.retrofit :是一个对网络库的使用进行了封装的第三方库. 我们只需要操作 retrofit实例就可以得到你想要的结果,屏蔽内部原理,使用更加简单.并且提供了拔插式的配置如: OkHttpClient.Call.factory 网络实现,Converter.Factory 转换工厂,CallA
2018-01-12 15:39:49 250
原创 OkHttp 上传监听
其实就是对网络请求RequestBody进行来代理. 使用: public void upload(View view) { File externalStorageDirectory = new File(Environment.getExternalStorageDirectory ().getAbsoluteFile(), "nihao.apk"); Log.e(TA
2018-01-11 14:40:37 661
原创 CacheInterceptor
要想清楚的了解可以三个类去了解 1.从 InternalCache 缓存类开始 然后只是一个接口 OkHttpClient 已经用Cache类 实现了 使用: File externalStorageDirectory = Environment.getExternalStorageDirectory(); File cache = new File(externalStorageDir
2018-01-11 14:40:16 289
原创 BridgeInterceptor
这个是第二执行的拦截器,作用: 添加或者修改自己想要header和对Response Header 缓存 @Override public Response intercept(Chain chain) throws IOException { Request userRequest = chain.request(); Request.Builder requestBui
2018-01-11 14:39:40 251
原创 RetryAndFollowUpInterceptor
这个拦截作用是:失败重连和重定向 直接上码 : public Response intercept(Chain chain) throws IOException { Request request = chain.request(); RealInterceptorChain realChain = (RealInterceptorChain) chain; Call call
2018-01-11 14:39:14 273
原创 OKHttp 执行拦截器前
在同步和异步方法中都调用 getResponseWithInterceptorChain(): Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. List<Interceptor> interceptors ...
2018-01-11 14:38:48 596
原创 OkHttp Dispatcher 源码解析
1.常用的属性 private int maxRequests = 64; //限制最大的请求数量 private int maxRequestsPerHost = 5; 限制ip或者域名相同时不可超过 private @Nullable Runnable idleCallback; //空闲回调,在finished()方法触发 /** Executes calls. Cre...
2018-01-11 14:38:06 415
原创 OkHttp 异步网络请求流程
直接上码: public void doGet(View view) { Request request = new Request.Builder().url(BASEURL + "login") .get().cacheControl(CacheControl.FORCE_NETWORK).build(); okHttpClient.newCall(request)....
2018-01-11 14:37:27 1142
原创 OkHttp 同步方法流程
OkHttp 基本使用官网更为详细:点击打开链接 异步流程OkHttp Dispatcher 源码解析 OKHttp 执行拦截器前 RetryAndFollowUpInterceptorBridgeInterceptorCacheInterceptor 基于CallServerInterceptor 文件上传监听一. 创建OkHttpClient 对象private void init() { ...
2018-01-11 14:36:26 905
原创 两个无意识的循环
1.一个是在jvm init()初始化成员变量时 public class TestNull { private TestNull aNull=new TestNull(); public static void main(String[] args) { TestNull testNull=new TestNull(); } @Override
2018-01-08 18:08:41 184
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人