Mi stavo chiedendo se ci saranno dei colli di bottiglia nelle prestazioni o problemi se creo un'istanza di OkHttpClient per servire la mia "intera applicazione Android". Nella mia classe Application, creo una variabile pubblica statica che conterrà un'istanza di OkHttpClient e ogni volta che devo fare una richiesta http, fondamentalmente costruisco un oggetto request, quindi utilizzo l'istanza okhttpclient creata per attivare la richiesta.okhttp application level OkHttpClient instance
codice per essere come questo
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();
Grazie a @bhdrkn. Ho visto sia la discussione che lo stile singleton e credo che lo farò. –
Nota: la singola istanza non è la stessa di singleton https://www.thekua.com/atwork/2009/01/singleton-vs-single-instance/. –
Se ho più domini, dovrei usare un'istanza okhttp per dominio, giusto? –