gpt4 book ai didi

Android:AsyncTask 中的 HTTP 请求不是并发的

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:50 24 4
gpt4 key购买 nike

我正在为 my local cinematheque 编写一个粉丝应用程序,显示接下来几天的放映日历。使用 parametrized HTTP call 检索每日电影列表。来自该站点(答案包含希伯来语,因此如果您单击该链接并收到一些乱码,则可能没问题)。

该应用程序显示接下来八天的日程安排,因此它会根据每天的日程安排请求进行 8 次调用。

private class GetMoviesTask extends AsyncTask<Integer, Void, List<Film>>

doInBackground() 获取每天的电影列表,onPostExecute() 更新界面。

AsyncTask 从 MainActivity.onCreate() 调用:

for (int i=0; i<NUMBER_OF_DAYS_TO_VIEW; i++){
new GetMoviesTask().execute(i);
}

问题是AsyncTask没有并发执行。日子一天一天的慢慢加载,慢得让人痛心:

enter image description here

enter image description here

enter image description here

同时启动这些 AsyncCalls 的最佳方式是什么?

最佳答案

众所周知,

AsyncTask 在 Android 4.x 中出现了回归,系统一次执行一个,而不是像 Android 以来那样同时执行它们1.6.这是设计使然:基本上,在较新的平台上,您可以通过调用 executeOnExecutor() 而不是 execute() 来恢复旧的并发行为。 Mark Murphy(在 StackOverflow 上称为 Commonsware)有 all the details sorted在他的博客上。

关于Android:AsyncTask 中的 HTTP 请求不是并发的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13329537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com