我已經構建了一個應用程序,並使用了Okhttp並進行了改進。一切正常,除了一些不規則的有線行爲。在這個新聞應用程序中,我觸發了多個部分的Feed下載請求。有時間請求永遠不會返回任何響應(甚至不會拋出異常),它只是卡住了,在Logcat中我看到了連續的垃圾回收。okhttp + retrofit - 監視器狀態的線程很多
我試圖找到潛在的嫌疑人找不到任何東西。我唯一可以從「新語絲」在DDMS看到的是大量的線程都在「監視」狀態(請參閱下面的截圖)
編輯: 另一種常用的線程轉儲用於改造:
這裏是改造的配置:
public interface ApiService {
@GET("/feed/get-news-feed/{section}")
void getNewsArticles(
@Path("section") String section,
Callback<GeneratedNewsEntryList> callback
);
}
public static ApiService getInstance() {
if(service == null) {
OkHttpClient okHttpClient = new OkHttpClient();
File cacheDir = App.getContext().getCacheDir();
HttpResponseCache cache = null;
try {
cache = new HttpResponseCache(cacheDir, 1024);
} catch (IOException e) {
e.printStackTrace();
}
okHttpClient.setResponseCache(cache);
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer(BASE_URL)
.setClient(new OkClient(okHttpClient))
.setErrorHandler(new ErrorHandler() {
@Override
public Throwable handleError(RetrofitError arg0) {
if(arg0.getResponse().getStatus() == 404)
return new Exception("Url does not exists");
return new Exception(arg0.getMessage());
}
})
.build();
service = restAdapter.create(ApiService.class);
}
return service;
}
任何想法,任何人都會遇到類似的問題?
嘿,我有問題使用這個,想知道你是否可以幫助我... ...想知道你從他的例子中獲得服務嗎?你能否展示更多的代碼?謝謝 – Lion789
也許你可以幫助回答這個問題http://stackoverflow.com/questions/22445177/trying-to-make-use-of-httpcache-android – Lion789