在主线程上设置Okhttp3上的缓存

时间:2016-03-21 16:06:36

标签: android dagger-2 okhttp3

Okhttp3使用构建器创建OkHttpClient,请参阅下面的示例代码。

 final OkHttpClient.Builder builder = new OkHttpClient.Builder();
   // Install an HTTP cache in the application cache directory.
  File cacheDir = new File(application.getCacheDir(), "http");
  final Cache cache = new Cache(cacheDir, BuildConfig.OK_HTTP_CACHE_SIZE_IN_BYTES);
  builder.cache(cache);

我使用Dagger 2注入OKHttpClient并在主线程上注入代码。一旦我打开了stricMode,我们得到了以下内容:

StrictMode policy violation; ~duration=333 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2

有没有办法使用Dagger 2设置主线程的缓存?

供您参考。我检查了杰克的U2020 project,它没有问题。我有什么遗漏的。

1 个答案:

答案 0 :(得分:0)

您正在做的事情不应该在构建时导致超时错误(可能是导致此错误的文件目录),但是如果您仍然遇到问题,可以通过{懒惰地实例化对象{1}}可能并在需要时从主线程中执行此操作。只是想象通常这些链条一吨