【发布时间】:2015-10-08 20:38:40
【问题描述】:
我有一个 listView 并且单击每一行我必须下载一个 mp3 文件。我对 service() 中的 AsyncTask 和在 DownloadManager 中构建(API 9 以上)感到困惑。
但是,由于您自己处理对onStartCommand() 的每个调用,因此您可以同时执行多个请求。这不是本示例所做的,但如果这是您想要的,那么您可以为每个请求创建一个新线程并立即运行它们(而不是等待前一个请求完成)。
从文档的上述行中,我正在考虑在 onStartCommand 方法中创建 AsyncTask 的新实例,因此每个文件都将作为单独的任务下载,但在搜索时我遇到了 DownloadManagerr。我在文档中发现的关于它的信息很少。
我对 DownloadManager 有疑问。它是否像 IntentService 一样工作?有人请指导我使用什么(service()或DownloadManager中的AsyncTask)并请清除上述疑问。
【问题讨论】:
-
如果你想要并行下载,你需要在 AsyncTask 中更改执行器,否则你会得到多个串行执行的 AsyncTask(默认)。
-
嘿@gil 感谢您的回复。抱歉,我没有收到“在异步任务中更改执行者”
-
@gil 您能否提供上述场景的链接或一些代码片段。谢谢
-
然后使用 executeOnExecutor() 执行任务
标签: android android-asynctask android-service android-download-manager