我在弄清楚 aSynctask 的使用、线程和下载图像时遇到了一些问题。我制作了一个下载图像但没有实现任何线程、异步任务或任何东西的类。
目前我只使用一个异步任务来完成第 1 步和第 2 步。我的平板电脑大约需要 10 秒。
我已经想到了应用程序如何工作/继续的 3 个步骤。
从 url 下载最重要的信息,以 JSON 格式保存到 sqlite 数据库中。这是其他步骤需要拥有的最相关信息才能继续。目前这最多需要 2 秒左右,我将其保存到数据库中。
查询我的数据库以从以前的 JSON 数据中获取更多 url,并从同一站点(30 个不同的 URL)下载更多信息,并将 JSON 保存到我的数据库中。在单个异步任务中,这需要大约 5 秒。如果可能的话,我正在考虑将其分成 3 个(?)线程。
再次查询数据库以获取第 2 步提供的信息,并从不同的 URL 下载大约 200 个大小约为 150 像素的图像,并将这些图像保存到设备存储中。必须先完成所有前面的步骤,然后才能进行下载。这也必须分成多个线程,以便我可以尽可能快地下载尽可能多的图像。
我想知道为这个任务和单独的线程使用 asynctask 的最聪明的方法是什么。您认为我必须使用多少线程(当然,稍后我会在优化时弄清楚这一点)。我应该先使用 asynctask 下载第 1 步,然后在执行后启动其他线程吗?我应该在这个类中创建嵌套异步类的其他线程吗?
至少非常感谢您阅读所有这些内容并可能获得您的帮助。
编辑:哦,我正在使用服务来启动异步任务。