2016-03-21 10 views
2

Die Okhttp3 verwendet den Erbauer, um OkHttpClient zu erstellen, siehe unten Beispielcode.Setzen Sie den Cache auf Okhttp3 aus dem Hauptthread

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); 

Ich verwende den Dagger 2 OKHttpClient einschleusen und spritzt den Code auf Haupt-Thread. sobald ich die stricMode eingeschaltet ist, haben wir hier ein:

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

Gibt es Möglichkeit, den Cache von der Haupt-Thread-Set 2 mit Dolch?

Für Sie als Referenz. Ich habe Jakes U2020 project überprüft, es hat das Problem nicht. Gibt es etwas, das ich vermisst habe?

+0

Ich versuche, das gleiche herauszufinden, habe noch keine Lösung gefunden ... –

Antwort

0

Was Sie tun, sollte keinen Fehler durch ein Timeout während der Erstellung verursachen (es könnte etwas über das Dateiverzeichnis sein, das diesen Fehler verursacht), aber wenn Sie immer noch Probleme haben, könnten Sie das Objekt über eine Instanz instanziieren Provider möglicherweise und tun Sie das aus dem Hauptgewinde bei Bedarf. Nur ein Gedanke wie in der Regel diese Kette eine Tonne