2017-08-19 6 views
2

Bin mit glide v4 und okhttp3 Integration mit Glide. Ich möchte die Timeout-Zeit ändern. wie geht das? durch Verlängerung AppGlideModule oder gibt es einen anderen Weg? Ich habe nach einer geeigneten Dokumentation gesucht, aber nirgendwo gesehen.Wie Timeout mit Okhttp3 und GlideV4 einstellen?

Antwort

4

Sie können das Zeitlimit ändern, indem Sie eine Klasse erstellen, die AppGlideModule erweitert und Annotation @GlideModule hat. Dann überschreiben Sie die Methode registerComponents, und darin können Sie eine neue OkHttpClient erstellen, die Sie verwenden können, um das Glide-Anfrage-Timeout zu steuern.

Zunächst sollten Sie Glide und OkHttp3 Glide Integration Bibliothek gradle Abhängigkeiten in der build.gradle Datei hinzufügen:

compile 'com.github.bumptech.glide:glide:4.2.0' 
annotationProcessor 'com.github.bumptech.glide:compiler:4.2.0' 
compile("com.github.bumptech.glide:okhttp3-integration:4.2.0") { 
    exclude group: 'glide-parent' 
} 

Zweitens den Beispielcode für die benutzerdefinierte GlideAppModule Klasse:

@GlideModule 
public class MyGlideAppModule extends AppGlideModule { 
    @Override 
    public void registerComponents(Context context, Glide glide, Registry registry) { 
     OkHttpClient client = new OkHttpClient.Builder() 
       .connectTimeout(20, TimeUnit.SECONDS) 
       .readTimeout(20, TimeUnit.SECONDS) 
       .build(); 

     OkHttpUrlLoader.Factory factory = new OkHttpUrlLoader.Factory(client); 
     glide.getRegistry().replace(GlideUrl.class, InputStream.class, factory); 
    } 
} 

Credits Amir Ziarati für die Lösung!

Lesen Sie auch this article über Glide Anpassung mit Modulen für weitere Informationen über die Unterschiede zwischen Glide 3.x und Glide 4.x.

Verwandte Themen