簡體   English   中英

在Android中后台下載多個文件

[英]Download multiple files in background in Android

基本上,我正在嘗試制作一個用於觀看離線內容的小應用程序。 因此,有一段時間用戶選擇下載內容(應用程序應下載約300個小文件和圖像)。

我想向用戶展示如果他輸入適當的活動,過程將如何進行。 顯示所有文件的列表,告知已下載,正在下載或正在等待下載的文件。

我的問題是我真的不知道該采用哪種方法。 由於下載應該持續到完成,所以我認為解決方案是Service ,但是什么是最好的? 每次下載都調用startService()的IntentService,綁定服務或標准服務? 以及如何保持對象更新以便以后顯示? 我應該在內存中使用數據庫還是對象?

謝謝

我建議使用AsyncTask類,它使您可以輕松地將耗時的代碼(如下載文件)移動到其他線程。 這將使您的應用程序保持響應速度,同時使您能夠在此過程中更新UI。

如果沒有更多有關您的應用程序如何表現的詳細信息,很難做到更加具體。 下載是否僅在應用程序運行時或在后台運行?

您可以使用Asynctask或使用自定義策略實現ExecutorService並將下載線程發送給它。
如果要給用戶機會停止下載,則需要在集合內部分別保留對AsyncTask或Future對象的引用。 當然,每次要下載新文件時,都需要調用startService。 僅當服務未運行且每次調用startService時onStartCommand運行時,才調用服務onCreate。 在onStartCommand中,您運行一個新線程以下載新文件。 您可以將服務與活動綁定,並且每次創建downloadsActivity時,都會顯示實現自定義適配器的下載狀態。 服務僅在您調用activity.stopService或service.stopSelf時完成

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM