0

我在弄清楚 aSynctask 的使用、线程和下载图像时遇到了一些问题。我制作了一个下载图像但没有实现任何线程、异步任务或任何东西的类。

目前我只使用一个异步任务来完成第 1 步和第 2 步。我的平板电脑大约需要 10 秒。

我已经想到了应用程序如何工作/继续的 3 个步骤。

  1. 从 url 下载最重要的信息,以 JSON 格式保存到 sqlite 数据库中。这是其他步骤需要拥有的最相关信息才能继续。目前这最多需要 2 秒左右,我将其保存到数据库中。

  2. 查询我的数据库以从以前的 JSON 数据中获取更多 url,并从同一站点(30 个不同的 URL)下载更多信息,并将 JSON 保存到我的数据库中。在单个异步任务中,这需要大约 5 秒。如果可能的话,我正在考虑将其分成 3 个(?)线程。

  3. 再次查询数据库以获取第 2 步提供的信息,并从不同的 URL 下载大约 200 个大小约为 150 像素的图像,并将这些图像保存到设备存储中。必须先完成所有前面的步骤,然后才能进行下载。这也必须分成多个线程,以便我可以尽可能快地下载尽可能多的图像。

我想知道为这个任务和单独的线程使用 asynctask 的最聪明的方法是什么。您认为我必须使用多少线程(当然,稍后我会在优化时弄清楚这一点)。我应该先使用 asynctask 下载第 1 步,然后在执行后启动其他线程吗?我应该在这个类中创建嵌套异步类的其他线程吗?

至少非常感谢您阅读所有这些内容并可能获得您的帮助。

编辑:哦,我正在使用服务来启动异步任务。

4

1 回答 1

0

让多个线程下载不同图像的唯一原因是服务器是否需要一些时间来查询图像,结果您处于空闲状态而不是主动抽取数据。但如果不是这种情况,那么您的设备的工作速度与您的连接允许的速度一样快。希望这是有道理的。

于 2013-11-08T18:45:34.900 回答