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