2

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 项目,它没有问题。有什么我错过的吗。

4

1 回答 1

0

您所做的不应在构建时因超时而导致错误(可能与导致此错误的文件目录有关),但如果您仍然遇到问题,您可以通过可能懒惰地实例化对象Provider并执行该操作需要时关闭主线程。只是一个想法,就像通常这些链条一样

于 2016-07-05T06:17:12.250 回答