在服务()或下载管理器中的Asynctask从服务器下载文件

时间:2015-07-19 18:15:34

标签: android android-asynctask android-service android-download-manager

我有一个listView,然后点击每行我必须下载一个mp3文件。我在service()中的AsyncTask和DownloadManager(在API 9之上)中构建之间感到困惑。

但是,由于您自己处理了对onStartCommand()的每次调用,因此您可以同时执行多个请求。这不是这个例子的作用,但如果那是你想要的,那么你可以为每个请求创建一个新线程并立即运行它们(而不是等待先前的请求完成)。 / p>

从文档的上一行我想在AsyncTask方法中创建onStartCommand的新实例,因此每个文件将作为单独的任务下载,但在搜索时遇到了DownloadManagerr。我在文档中发现了很少的相关信息。

我对DownloadManager有疑问。它是否像IntentService一样工作?有人请指导我使用什么(服务()或DownloadManager中的AsyncTask),请清除上述疑问。

1 个答案:

答案 0 :(得分:0)

服务中的Asynk任务()

实现此代码要容易得多,因为您只需创建一个服务并通过调用

启动它
startService(my_service);

但是作为开始服务,当内存不足时你可以通过android停止(你的任务会失败)它可以手动关机用户通过设置和第三个可以关闭,如果手机关机,你无法恢复启动后的任务

<强>下载管理

使用DownloadManager,您必须设置BrodcastReceiver ACTION_NOTIFICATION_CLICKED ,但您可以更好地控制下载,因为此API仅用于下载目的

优点:

  1. 下载可以在重新启动单元后重新启动。
  2. 可限制在移动网络上使用(仅限强制wifi下载)。