Мне было интересно, будет ли какое-либо узкое место или проблемы с производительностью, если я создам один экземпляр OkHttpClient для обслуживания моего «всего приложения Android». I.e. В моем классе Application я создаю статическую общедоступную переменную, которая будет содержать экземпляр OkHttpClient, и всякий раз, когда мне нужно выполнить HTTP-запрос, я в основном создаю объект запроса, а затем создаю экземпляр okhttpclient для запуска запроса.ohttp application level OkHttpClient instance
Код быть, как это
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();
Thanks @bhdrkn. Я видел как обсуждение, так и стиль синглтона, и я думаю, что поеду за ним. –
Обратите внимание: один экземпляр не совпадает с singleton https://www.thekua.com/atwork/2009/01/singleton-vs-single-instance/. –
В случае, если у меня есть несколько доменов, я должен использовать экземпляр okhttp для домена, не так ли? –