2016-03-21 128 views
2

Okhttp3使用该构建器创建OkHttpClient,请参阅下面的示例代码。在主线程上关闭Okhttp3上的缓存

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

+0

我想弄清楚同样的事情,仍然没有找到解决方案... –

回答

0

你在做什么不应该在建造时造成超时错误(这可能是导致这个错误的文件目录),但是如果你仍然有问题,你可以通过一个懒惰的实例化对象Provider可能并且在需要时关闭主线程。通常这些链只是一个想法一吨