okhttp 应用级 OkHttpClient 实例

2024-03-21

我想知道如果我创建一个 OkHttpClient 实例来为我的“整个 Android 应用程序”提供服务,是否会出现任何性能瓶颈或问题。即在我的 Application 类中,我创建一个静态公共变量,它将包含 OkHttpClient 的实例,每当我需要执行 http 请求时,我基本上都会构建一个请求对象,然后使用创建的 okhttpclient 实例来触发请求。

代码要像这样

public class MyApplication extends Application {
    public static OkHttpClient httpClient;

    @Override
    public void onCreate() {
        super.onCreate();

        httpClient = new OkHttpClient();
    }

}

// Making request 1
Request request1 = new Request.Builder().url(ENDPOINT).build();
Response response = MyApplication.httpClient.newCall(request1).execute();

// Making request 2
Request request2 = new Request.Builder().url(ENDPOINT).build();
Response response = MyApplication.httpClient.newCall(request2).execute();

使用单实例不是问题,而是一种常见做法。您可以查看类似的应用程序github https://github.com/JakeWharton/u2020/blob/master/app/src/main/java/com/jakewharton/u2020/data/DataModule.java它使用 dagger 使 OkHttpClient 单例并注入其他模块。

你可以看到在这次讨论中杰克沃顿 https://plus.google.com/118239425803358296962/posts/5nzAvPaitHu也建议这种用法。

但如果您使用单例模式来实现此目的,效果会更好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

okhttp 应用级 OkHttpClient 实例 的相关文章

随机推荐