繁体   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