Skip to content

Commit

Permalink
Improve GlobalConfiguration's comments
Browse files Browse the repository at this point in the history
  • Loading branch information
JessYanCoding committed Dec 7, 2018
1 parent 8535ec5 commit eb2f912
Showing 1 changed file with 16 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
* ================================================
* App 的全局配置信息在此配置,需要将此实现类声明到 AndroidManifest 中
* ConfigModule 的实现类可以有无数多个, 在 Application 中只是注册回调, 并不会影响性能 (多个 ConfigModule 在多 Module 环境下尤为受用)
* 不过要注意 ConfigModule 接口的实现类对象是通过反射生成的, 这里会有些性能损耗
* ConfigModule 接口的实现类对象是通过反射生成的, 这里会有些性能损耗
*
* @see AppDelegate
* @see ManifestParser
Expand All @@ -54,7 +54,7 @@ public final class GlobalConfiguration implements ConfigModule {

@Override
public void applyOptions(Context context, GlobalConfigModule.Builder builder) {
if (!BuildConfig.LOG_DEBUG) { //Release 时,让框架不再打印 Http 请求和响应的信息
if (!BuildConfig.LOG_DEBUG) { //Release 时, 让框架不再打印 Http 请求和响应的信息
builder.printHttpLogLevel(RequestInterceptor.Level.NONE);
}

Expand All @@ -66,7 +66,7 @@ public void applyOptions(Context context, GlobalConfigModule.Builder builder) {
//想支持多 BaseUrl, 以及运行时动态切换任意一个 BaseUrl, 请使用 https://github.com/JessYanCoding/RetrofitUrlManager
//如果 BaseUrl 在 App 启动时不能确定, 需要请求服务器接口动态获取, 请使用以下代码
//以下方式是 Art 框架自带的切换 BaseUrl 的方式, 在整个 App 生命周期内只能切换一次, 若需要无限次的切换 BaseUrl, 以及各种复杂的应用场景还是需要使用 RetrofitUrlManager 框架
//以下代码只是配置, 还要使用 Okhttp (AppComponent中提供) 请求服务器获取到正确的 BaseUrl 后赋值给 GlobalConfiguration.sDomain
//以下代码只是配置, 还要使用 Okhttp (AppComponent 中提供) 请求服务器获取到正确的 BaseUrl 后赋值给 GlobalConfiguration.sDomain
//切记整个过程必须在第一次调用 Retrofit 接口之前完成, 如果已经调用过 Retrofit 接口, 此种方式将不能切换 BaseUrl
// .baseurl(new BaseUrl() {
// @Override
Expand Down Expand Up @@ -120,31 +120,31 @@ public void applyOptions(Context context, GlobalConfigModule.Builder builder) {
//可以自定义一个单例的线程池供全局使用
// .executorService(Executors.newCachedThreadPool())

// 这里提供一个全局处理 Http 请求和响应结果的处理类,可以比客户端提前一步拿到服务器返回的结果,可以做一些操作,比如token超时,重新获取
//这里提供一个全局处理 Http 请求和响应结果的处理类, 可以比客户端提前一步拿到服务器返回的结果, 可以做一些操作, 比如 Token 超时后, 重新获取 Token
.globalHttpHandler(new GlobalHttpHandlerImpl(context))
// 用来处理 rxjava 中发生的所有错误,rxjava 中发生的每个错误都会回调此接口
// rxjava必要要使用ErrorHandleSubscriber(默认实现Subscriber的onError方法),此监听才生效
//用来处理 RxJava 中发生的所有错误, RxJava 中发生的每个错误都会回调此接口
//RxJava 必须要使用 ErrorHandleSubscriber (默认实现 Subscriber 的 onError 方法), 此监听才生效
.responseErrorListener(new ResponseErrorListenerImpl())
.gsonConfiguration((context1, gsonBuilder) -> {//这里可以自己自定义配置Gson的参数
.gsonConfiguration((context1, gsonBuilder) -> {//这里可以自己自定义配置 Gson 的参数
gsonBuilder
.serializeNulls()//支持序列化null的参数
.enableComplexMapKeySerialization();//支持将序列化key为object的map,默认只能序列化key为string的map
.serializeNulls()//支持序列化值为 null 的参数
.enableComplexMapKeySerialization();//支持将序列化 key 为 Object 的 Map, 默认只能序列化 key 为 String 的 Map
})
.retrofitConfiguration((context1, retrofitBuilder) -> {//这里可以自己自定义配置 Retrofit 的参数, 甚至您可以替换框架配置好的 OkHttpClient 对象 (但是不建议这样做, 这样做您将损失框架提供的很多功能)
// retrofitBuilder.addConverterFactory(FastJsonConverterFactory.create());//比如使用fastjson替代gson
// retrofitBuilder.addConverterFactory(FastJsonConverterFactory.create());//比如使用 FastJson 替代 Gson
})
.okhttpConfiguration((context1, okhttpBuilder) -> {//这里可以自己自定义配置Okhttp的参数
// okhttpBuilder.sslSocketFactory(); //支持 Https,详情请百度
.okhttpConfiguration((context1, okhttpBuilder) -> {//这里可以自己自定义配置 Okhttp 的参数
// okhttpBuilder.sslSocketFactory(); //支持 Https, 详情请百度
okhttpBuilder.writeTimeout(10, TimeUnit.SECONDS);
//使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听 详细使用方法查看 https://github.com/JessYanCoding/ProgressManager
//使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听, 详细使用方法请查看 https://github.com/JessYanCoding/ProgressManager
ProgressManager.getInstance().with(okhttpBuilder);
//让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager
//让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl, 详细使用方法请查看 https://github.com/JessYanCoding/RetrofitUrlManager
RetrofitUrlManager.getInstance().with(okhttpBuilder);
})
.rxCacheConfiguration((context1, rxCacheBuilder) -> {//这里可以自己自定义配置 RxCache 的参数
rxCacheBuilder.useExpiredDataIfLoaderNotAvailable(true);
// 想自定义 RxCache 的缓存文件夹或者解析方式, 如改成 fastjson, 请 return rxCacheBuilder.persistence(cacheDirectory, new FastJsonSpeaker());
// 否则请 return null;
//想自定义 RxCache 的缓存文件夹或者解析方式, 如改成 FastJson, 请 return rxCacheBuilder.persistence(cacheDirectory, new FastJsonSpeaker());
//否则请 return null;
return null;
});
}
Expand Down

0 comments on commit eb2f912

Please sign in to comment.