Zastanawiam się, czy nie będzie żadnych wąskich gardeł wydajności lub problemów, jeśli utworzyć jedną instancję OkHttpClient do obsługi mojej "całej aplikacji Android". W mojej klasie aplikacji tworzę statyczną zmienną publiczną, która będzie zawierała instancję OkHttpClient, a gdy zajdzie potrzeba wykonania żądania http, generuję po prostu obiekt żądania, a następnie używam utworzonej instancji okhttpclient do odpalenia żądania.poziom aplikacji okhttp instancja OkHttpClient
Code tak być
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();
Dzięki @bhdrkn. Widziałem zarówno dyskusję, jak i styl singletonowy i myślę, że pójdę po to. –
Uwaga: pojedyncza instancja to nie to samo co singleton https://www.thekua.com/atwork/2009/01/singleton-vs-single-instance/. –
Jeśli mam wiele domen, powinienem użyć instancji okhttp na domenę, prawda? –