代码之家  ›  专栏  ›  技术社区  ›  Mr. B.

android/java:如何并行和重复地执行多个http请求?

  •  0
  • Mr. B.  · 技术社区  · 6 年前

    我有一个新闻提要的列表,我想没完没了地读下去。

    当前方法, 新闻阅读器服务 以下内容:

    // ...
    protected void onHandleIntent(Intent intent) {
        // run endlessly 
        while(true) { 
    
            // One thread per URL
            List<ReaderThread> threads = new ArrayList<>(); 
    
            // Prepare one ReaderThread per URL
            for (String url : readerUrls) {
                threads.add(new ReaderThread(url));
            }
    
            // Execute all threads
            ExecutorService executorService = Executors.newFixedThreadPool(threads.size());
            executorService.invokeAll(tasks);
    
            // Wait for all threads to finish 
    
            // Start all over again
        }
    }
    // ...
    

    我不喜欢我现在的做法 ,因为:

    1. while(true) 感觉不对。
    2. 我在创造新的 ReaderThread 然后表演 Retrofit 请求 (哪个是另一条线索?) 在每个 读线程 是的。
    3. ExecutorService 似乎用错了。

    我想知道 妥善解决 为了达到我描述的目标。 知道吗?

    提前谢谢!

    0 回复  |  直到 6 年前