2017-08-19 20 views
2

glide v4およびokhttp3グライドとの統合を使用しています。タイムアウト時間を変更したいどうやってするか? AppGlideModuleを延長するか、他の方法がありますか?私は適切な文書を検索しましたが、どこにも見られませんでした。Okhttp3とGlideV4でタイムアウトを設定するには?

答えて

4

AppGlideModuleを拡張し、@GlideModuleの注釈を持つクラスを作成することによって、タイムアウトを変更できます。その後、registerComponentsメソッドをオーバーライドし、その内部に新しいOkHttpClientを作成することができます。これを使用して、グライド要求のタイムアウトを制御できます。 Amir Ziarati

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

クレジット:

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' 
} 

第二に、カスタムGlideAppModuleクラスのサンプルコード:

まず、あなたはbuild.gradleファイルにGlideOkHttp3 Glide IntegrationライブラリGradleの依存関係を追加する必要があります解決策を提供するために!

また、Glide 3.xGlide 4.x間の違いの詳細については、モジュールとthis articleGlide程度のカスタマイズを参照してください。

関連する問題