在Android中下载队列中的文件

时间:2011-11-30 09:50:11

标签: android

如何逐个下载队列中的多个文件!我使用this作为示例代码,因为。 我将动态地从本地数据库中传递URL以在Strings中下载。

请告诉我怎么做。我想在应用程序启动后立即开始下载。请帮助我! Android Dev Type :新手 下载队列的目的:在应用内结算成功后,从服务器下载多个文件!

P.S。:我已经提到了this个问题。但我不确定这是否能解决我的问题!

3 个答案:

答案 0 :(得分:3)

将一个异步处理请求排队的好方法是一次IntentService。如果您有IntentService从提供的Intent读取网址,那么您只需为要下载的每个文件创建Intent,然后发送每个Intent到服务,

Here is a good tutorial

编辑:我看到您已经提到过类似的问题,答案建议IntentService。所以,也许你应该使用IntentService。 :)

答案 1 :(得分:0)

从API 11开始,一个好的方法是使用带有异步任务的FixedThreadPool。做一次:

ExecutorService threadPoolExecutor = Executors.newFixedThreadPool(3);

其中3是您想要同时运行的下载次数。如果已经运行了3次下载,它将对任务进行排队,并在以后自动处理该任务。 使用以下命令启动异步任务:

yourAsynTask.executeOnExecutor(threadPoolExecutor, params);

Params可能是您希望连接的网址。您可以在asynctask的onPostExecute中读出它,并使用HttpURLConnection连接到服务器。

确保在关机时调用此功能:

threadPoolExecutor.shutdown()

答案 2 :(得分:0)

  

在Android中实施下载队列的最佳方式是什么?

使用IntentService。它为您提供队列和后台线程,因此您所要做的就是将下载逻辑放在onHandleIntent()中。 See here for a sample project证明了这一点。