我想知道如果我创建一个 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(使用前将#替换为@)