我有一些问题要弄清楚使用aSynctask,线程和下载图像。我已经创建了一个下载图像的类,但没有实现任何线程,asynctask或者无论如何。
目前我只使用一个asynctask来完成步骤1和2.我的平板电脑需要大约10秒钟。
我已经想过应用程序如何工作/继续的3个步骤。
从url下载最重要的信息,该信息采用JSON格式并保存到sqlite数据库中。这是其他步骤需要具备的最相关信息,以便继续。目前这大约需要2秒钟,我将其保存到数据库中。
查询我的数据库,从以前的JSON数据中获取更多网址,并从同一网站(30个不同的网址)下载更多信息,并将JSON保存到我的数据库中。在单个异步任务中,此时大约需要5秒钟。我想在可能的情况下将其分成3个(?)线程。
再次查询数据库以获取步骤2提供的信息,并从不同的URLS下载大约200个大小约为150px的图像,并将这些图像保存到设备存储中。在我可以进行下载之前,所有先前的步骤都必须完成。这必须分成多个线程,这样我就可以尽快下载尽可能多的图像。
我想知道在这个任务和单独的线程中使用asynctask最聪明的方法是什么。你认为我必须使用多少线程(当然,我将在稍后优化时解决这个问题)。我应该首先使用asynctask下载步骤1并在post执行后启动其他线程吗?我应该在此类中创建具有嵌套异步类的其他线程。
非常感谢你阅读所有这些并可能为你提供帮助。
编辑:哦,我正在使用服务来启动asynctask。
答案 0 :(得分:0)
让多个线程下载不同图像的唯一原因是服务器需要一些时间来查询图像,因此您处于空闲状态而不是主动泵送数据。但如果不是这样,那么您的设备工作速度与您的连接允许的速度一样快。希望它有意义。