1

我有listView和點擊每行我必須下載mp3文件。 我在服務()內的Asynktask和構建在下載管理器(在api 9之上)之間混淆。Asynctask內的服務()或下載經理從服務器上下載文件

但是,由於您自己處理每個對onStartCommand()的調用,因此可以同時執行多個請求。這不是這個例子的作用,但如果這就是你想要的,那麼你可以爲每個請求創建一個新線程並立即運行它們(而不是等待前一個請求完成)。

從上面一行從文檔我想在 onStartCommand方法來創建Asynktask的新實例,因此每個文件都將下載作爲單獨的任務。

但是,當我搜索跨下載管理器來。我發現它在文件中非常少的信息。

我對Downlaod馬槽有疑問。 它是否像IntentService一樣工作?

有人請指導我使用什麼(服務()或下載經理內的Asynktask),請清除以上疑問。

+0

如果需要並行下載,則需要更改AsyncTask中的執行程序,否則將最終獲得多個串行執行的AsyncTasks(缺省值)。 –

+0

嘿@吉爾謝謝你的回覆。對不起,我沒有得到「在asynk任務中更改執行器」 –

+0

@gil你能否提供以上場景的鏈接或一些代碼snipet。感謝 –

回答

0

Asynktask服務()

實現這個代碼是很容易,因爲你只需創建一個服務,並通過調用

startService(my_service); 

啓動它,但作爲開始的服務也可以是由Android時,停止內內存不足(您的任務將失敗)可以手動關機用戶可以通過設置和第三方關閉如果手機關機,則無法在開機後恢復您的任務

下載管理

有了下載管理器,你必須設置一個BrodcastReceiver ACTION_NOTIFICATION_CLICKED但你更好地控制你的下載,這個API下載目的

優點爲唯一開發:

  1. 下載可進行您的單元重新啓動後重新啓動。
  2. 可以通過移動網絡限制使用(僅限強制wifi下載)。
+0

那麼有什麼更好的選擇? –