本文介紹了Okhttp應(yīng)用程序級(jí)OkHttpClient實(shí)例的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我想知道,如果我創(chuàng)建一個(gè)OkHttpClient實(shí)例來為我的”整個(gè)Android應(yīng)用程序”服務(wù),是否會(huì)有任何性能瓶頸或問題。也就是說,在我的應(yīng)用程序類中,我創(chuàng)建了一個(gè)靜態(tài)公共變量,該變量將包含OkHttpClient的一個(gè)實(shí)例,每當(dāng)我需要做一個(gè)http請(qǐng)求時(shí),我基本上都會(huì)構(gòu)建一個(gè)請(qǐng)求對(duì)象,然后使用創(chuàng)建的okHtpClient實(shí)例來激發(fā)請(qǐng)求。
代碼如下
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();
推薦答案
使用單實(shí)例不是問題,而是一種常見的做法。您可以查看github中的類似應(yīng)用,該應(yīng)用使用匕首創(chuàng)建OkHttpClient單例,并將其注入其他模塊。
您可以看到in this discussion JakeWharton也建議使用這種用法。
但最好使用Singleton模式進(jìn)行此操作。
這篇關(guān)于Okhttp應(yīng)用程序級(jí)OkHttpClient實(shí)例的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,