0
我有一個recyclerview在每一行包含一個url,並且這些url可以在任何時候過期。 我希望用戶不要被迫點擊url來檢查它是否無效,但我寧願改變行的顏色來通知用戶。Android recyclerView HttpURLConnection
這是我用它來檢查方法如果URL仍然有效:
private boolean isUrlStillValid(String url) {
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection();
con.setRequestProperty("Accept-Encoding", "");
int responseCode = con.getResponseCode();
con.disconnect();
return responseCode == HttpURLConnection.HTTP_OK;
}catch(Exception e) {
return false;
}
}
我最初以爲在回收觀點,我檢查URL有效性onBindViewHolder方法啓動一個的AsyncTask的,但這每次顯示一行時都會同時打開很多連接,並且會導致我認爲非常糟糕的性能和內存問題。
對於如何實現這一點,您有任何提示/建議嗎?
此外,當響應到達時,請確保您更新正確的查看持有人的信息。 (它可能被回收代表另一個位置) – yigit
@yigit感謝您的提示。 – mmlooloo
不應該使用AsyncTasks和executeOnExecutor(THREAD_POOL_EXECUTOR)來實現您的建議嗎?如果我有100行的東西不能有任何內存/性能問題? –