Android recyclerView HttpURLConnection

Android recyclerView HttpURLConnection

我有一个 recyclerview,其中每一行都包含一个 url,并且 url 随时可能过期。 我希望用户不要被迫单击 url 来检查它是否无效,但在这种情况下我宁愿更改行的颜色以通知用户。

这是我用来检查 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;
    }
}

我最初想在回收站视图的 onBindViewHolder 方法中启动一个 AsyncTask,我在其中检查 url 有效性,但这会在每次显示一行时同时打开很多连接,并且会导致非常我认为性能和内存问题不佳。

你有什么tip/suggestions如何做到这一点吗?

Do you have any tip/suggestions on how to achieve this?

为每个 url 创建一个 运行nable 和 运行 所有这些都在 ExecutorService.

修复线程池上

例如,您可以使用以下代码一次拥有 5 个线程:

ExecutorService executor = Executors.newFixedThreadPool(5); 

我还建议将结果保存在某处,这样当用户使用滚动条时,它不会一次又一次地检查 url ...