【发布时间】:2012-03-07 00:01:15
【问题描述】:
这应该有一个简单的答案,但我找不到任何答案。 因为我还是一个机器人假人,所以我来这里问你们这些人。
我一直在制作这个在启动时执行 10 个 AsyncTask 的项目。 每个任务都包含 3 个 URL,它们在那里收集数据并且在应用程序中没有做任何重要的事情(目前)。
我还有 10 个文本视图,用于跟踪 AsyncTasks 的进度。
当一个任务开始时,适当的文本视图被放在“开始” 当任务正在进行时,它将其适当的文本视图设置为“正在下载” 任务完成后,它会将相应的文本视图设置为“已完成”
这是我对 AsyncTask 的观察和质疑。 当我启动应用程序时,我注意到有 5 个文本视图被切换到“正在下载”标记,所以我看到 5 个 AsyncTasks 正在完成他们应该做的工作。完成后,它会启动一个新的 AsyncTask。然而,它们从未超过 5 的限制。
是什么导致了同时运行 5 个异步任务的限制? 我是否在某些我找不到的文件中造成了这种情况? 这是android 2.3.3的限制吗?也许是我用来模拟应用程序的设备的限制?
谁能详细说明一下?
【问题讨论】:
-
这个问题在这里解决:stackoverflow.com/questions/3077461/…
-
@jengelsma 不是。这肯定是相关的,但是为什么它不超过 5 与为什么它从不低于 5 有点不同。它仍然与核心池大小有关,但该问题/答案并未解决为什么核心池大小会限制当最大池大小为 128 时,并发任务数为 5。
-
我认为您使用的是 AsyncTask.execute() 而不是 AsyncTask.executeOnExecutor()
标签: android android-asynctask limit android-2.3-gingerbread