key 在缓存中有对应的 value 并且不为 null, 则返回 truekey 在缓存中有对应的 value 并且不为 null,则返回 truedomainName 的 Url(BaseUrl)key 在缓存中对应的 value, 如果返回 null 说明这个 key 没有对应的 valuekey 在缓存中对应的 value, 如果返回 null 说明这个 key 没有对应的 valueitem 所占用的 size,默认为1,这个 size 的单位必须和构造函数所传入的 size 一致
子类可以重写这个方法以适应不同的单位,比如说 bytesdomainNamekeykeydomainName 作为 key,从 mDomainNameHub
中取出对应的 BaseUrl 构建新的 Url 之前会被调用Request 进行一些必要的加工, 执行切换 BaseUrl 的相关逻辑key 和 value 以条目的形式加入缓存,如果这个 key 在缓存中已经有对应的 value
则此 value 被新的 value 替换并返回,如果为 null 说明是一个新条目key 和 value 以条目的形式加入缓存,如果这个 key 在缓存中已经有对应的 value
则此 value 被新的 value 替换并返回,如果为 null 说明是一个新条目key 所对应的条目,并返回所移除条目的 value
如果返回为 null 则有可能时因为这个 key 对应的 value 为 null 或条目不存在key 所对应的条目,并返回所移除条目的 value
如果返回为 null 则有可能时因为这个 key 对应的 value 为 null 或条目不存在domainNamefalseLruCache.maxSize
并会立即调用 LruCache.evict() 开始清除满足条件的条目UrlParser 动态切换 Url 解析策略AdvancedUrlParser
注意, 如果没有开启高级模式, 默认为普通默认, 只能替换域名, 如: https://www.github.comAdvancedUrlParser
注意, 如果没有开启高级模式, 默认为普通默认, 只能替换域名, 如: https://www.github.computDomain(String, String) 方法的 Url 替换掉
但如果突然有一小部分的 Url 只想将 "https://www.github.com/wiki" (PathSize = 1) 替换掉, 后面的 pathSegment '/part' 想被保留下来
这时项目中就出现了多个 PathSize 不同的需要被替换的 BaseUrlOkHttpClient.Builder 传入, 配置一些本框架需要的参数