如何使Glide使连接保持活动状态?

时间:2019-11-22 16:52:53

标签: android android-glide

我正在使用Android Glide库远程加载图像。

图像URL协议为https,因此每次建立新连接时,由于TSL的存在,对性能都有影响。

我正在使用okhttp集成:

def glide_version = "4.10.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"

是否可以使Glide使连接保持活动状态以获得更好的性能?

1 个答案:

答案 0 :(得分:2)

尝试使用自定义ConnectionPool设置HTTP客户端。看一下连接池的构造函数:

public ConnectionPool(int maxIdleConnections, long keepAliveDuration, TimeUnit timeUnit)

因此您可以尝试以下操作:

@GlideModule
class YourGlideModule : AppGlideModule() {
    override fun registerComponents(context: Context, glide: Glide, registry: Registry) {
        registry
                .replace(
                        GlideUrl::class.java,
                        InputStream::class.java,
                        OkHttpUrlLoader.Factory(
                                OkHttpClient.Builder()
                                        .connectionPool(ConnectionPool(5, 5, TimeUnit.MINUTES))
                                        .build()))
    }
}

这些是默认值,但是您可以找到适合自己的值。

相关问题