Multiple http requests with cancel request
我正在创建一个 Android 应用,它需要发出一些并行 HTTP/HTTPS 请求(正好 10 个)。
第一步
如何在 android 中进行并行请求?
可以同时使用HTTP和HTTPS吗?
Obs:在 google 中搜索,我找到了 ExecutorService。我可以在android中使用它吗? (有人有例子吗?)
第二步
如果有人帮助解决第一个问题,我将有以下情况:
1
2 3 |
1 request one started — (working) –> cloud
2 request two started — (working) –> cloud 3 request three started — (working) –> cloud |
几秒钟后,线程 2 第一个说”我完成了我的工作,这是页面的响应”,线程 1 和 3 正在工作。
如何停止/杀死线程 1 和 3?
是的,你可以使用 ExecutorService
ExecutorService executorService = Executors.newFixedThreadPool(n);
然后使用提交函数执行任务
1
|
但不能保证所有任务会同时执行,这取决于可用资源。
2。
您可以关闭池;
1
|
executorService.shutdown();
|
但是除了尽力停止处理正在执行的任务之外,没有任何保证。
如果你想使用 asyncTask 请注意:
从 HONEYCOMB 开始,任务在单个线程上执行,以避免并行执行导致的常见应用程序错误。
所以任务在单个线程上执行而不是多个线程
- 你知道我是否可以将执行器服务与异步任务结合起来吗?
- @ronniery 将执行程序服务与异步任务结合起来是没有意义的。
- 所以你为我解释了这个问题,什么是最好的异步任务或执行器(可运行)(我想为 2.3 到 4.4 android os 构建应用程序)?
- 答案是视情况而定:AsyncTasks 最好用于短时间的操作(最多几秒钟)。如果您需要保持线程长时间运行,强烈建议您使用 java 提供的各种 API .util.concurrent 包,例如 Executor、ThreadPoolExecutor 和 FutureTask。
来源:https://www.codenong.com/25700762/