89885f257f0d8b136a7335325aafb4041765fd07.svn-base 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package eVVM.apk.app;
  2. import android.app.Application;
  3. import android.content.Context;
  4. import android.support.multidex.MultiDex;
  5. import com.allen.library.RxHttpUtils;
  6. import com.allen.library.config.OkHttpConfig;
  7. import com.allen.library.cookie.store.SPCookieStore;
  8. import com.hjq.image.ImageLoader;
  9. import com.hjq.toast.ToastUtils;
  10. import cn.bingoogolapple.swipebacklayout.BGASwipeBackHelper;
  11. import eVVM.apk.api.ApiUrl;
  12. import eVVM.apk.helper.SPUtils;
  13. import okhttp3.OkHttpClient;
  14. public class MyApplication extends Application {
  15. @Override
  16. public void onCreate() {
  17. super.onCreate();
  18. initSDK(this);
  19. }
  20. /**
  21. * 初始化一些第三方框架
  22. */
  23. public static void initSDK(Application application) {
  24. /**
  25. * 必须在 Application 的 onCreate 方法中执行 BGASwipeBackHelper.init 来初始化滑动返回
  26. * 第一个参数:应用程序上下文
  27. * 第二个参数:如果发现滑动返回后立即触摸界面时应用崩溃,请把该界面里比较特殊的 View 的 class 添加到该集合中,目前在库中已经添加了 WebView 和 SurfaceView
  28. */
  29. BGASwipeBackHelper.init(application, null);
  30. // 初始化吐司工具类
  31. ToastUtils.init(application);
  32. // 初始化图片加载器
  33. ImageLoader.init(application);
  34. // 初始化 EventBus
  35. // EventBusManager.init();
  36. // 初始化友盟 SDK
  37. // UmengClient.init(application);
  38. //初始化网络请求框架 RxHttpUtils :rxjava2+retrofit+okhttp3组合封装
  39. OkHttpClient okHttpClient = new OkHttpConfig
  40. .Builder(application)
  41. //全局的请求头信息
  42. /* .setHeaders(new BuildHeadersListener() {
  43. @Override
  44. public Map<String, String> buildHeaders() {
  45. HashMap<String, String> hashMap = new HashMap<>();
  46. hashMap.put("appVersion", BuildConfig.VERSION_NAME);
  47. hashMap.put("client", "android");
  48. hashMap.put("token", "your_token");
  49. hashMap.put("other_header", URLEncoder.encode("中文需要转码"));
  50. return hashMap;
  51. }
  52. })*/
  53. //开启缓存策略(默认false)
  54. //1、在有网络的时候,先去读缓存,缓存时间到了,再去访问网络获取数据;
  55. //2、在没有网络的时候,去读缓存中的数据。
  56. .setCache(true)
  57. .setHasNetCacheTime(10)//默认有网络时候缓存60秒
  58. .setNoNetCacheTime(3600)//默认有网络时候缓存3600秒
  59. //全局持久话cookie,保存到内存(new MemoryCookieStore())或者保存到本地(new SPCookieStore(this))
  60. //不设置的话,默认不对cookie做处理
  61. .setCookieType(new SPCookieStore(application))
  62. //可以添加自己的拦截器(比如使用自己熟悉三方的缓存库等等)
  63. //.setAddInterceptor(null)
  64. //全局ssl证书认证
  65. //1、信任所有证书,不安全有风险(默认信任所有证书)
  66. //.setSslSocketFactory()
  67. //2、使用预埋证书,校验服务端证书(自签名证书)
  68. //.setSslSocketFactory(cerInputStream)
  69. //3、使用bks证书和密码管理客户端证书(双向认证),使用预埋证书,校验服务端证书(自签名证书)
  70. //.setSslSocketFactory(bksInputStream,"123456",cerInputStream)
  71. //全局超时配置
  72. .setReadTimeout(10)
  73. //全局超时配置
  74. .setWriteTimeout(10)
  75. //全局超时配置
  76. .setConnectTimeout(10)
  77. //全局是否打开请求log日志
  78. .setDebug(true)
  79. .build();
  80. /* //一个项目多url的配置方法(这种写法的前提是事先已经知道所有的baseUrl了)
  81. RxUrlManager.getInstance().setMultipleUrl(urlMap);
  82. //如果是动态从服务器获取的baseUrl的话也可以添加进来
  83. // key是对url做区分使用,value就是服务器下发的baseUrl(baseUrl必须以"xxx/"斜杠结尾,retrofit的要求)
  84. RxUrlManager.getInstance().addUrl("urlKey", "urlValue");
  85. */
  86. RxHttpUtils
  87. .getInstance()
  88. .init(application)
  89. .config()
  90. //使用自定义factory的用法
  91. //.setCallAdapterFactory(RxJava2CallAdapterFactory.create())
  92. //.setConverterFactory(ScalarsConverterFactory.create(),GsonConverterFactory.create(GsonAdapter.buildGson()))
  93. //配置全局baseUrl
  94. .setBaseUrl(ApiUrl.BASE_URL)
  95. //开启全局配置
  96. .setOkClient(okHttpClient);
  97. }
  98. @Override
  99. protected void attachBaseContext(Context base) {
  100. super.attachBaseContext(base);
  101. // 使用 Dex分包
  102. MultiDex.install(this);
  103. }
  104. }