Android:从网址下载媒体

时间:2019-04-11 21:30:50

标签: android kotlin download background-process

使用( Kotlin )从URL 下载媒体(图像,视频,音频等)的现代方法(2019年)是什么?

显然,在后台获取方面可以使用很多不同的机制:

  • Service
  • JobService
  • IntentService
  • JobScheduler
  • BroadcastReceiver
  • AsyncTask
  • DownloadManager
  • PoolExecutor s
  • 以及这些的任何可能组合,甚至还有其他未在此处列出的...

我几乎可以为上面列表中的每个项目找到至少一个示例,但是我找不到Google或Android Dev Community的“标准”,“推荐”或“官方”方法。

(这里不要求提供银弹,只是想知道什么是这种共同任务中最一致或最一致的方法,当然还有现代方法)

1 个答案:

答案 0 :(得分:1)

Service是最快的-您可以立即下载所需数量的文件。您需要将其提升到前台(带有粘性通知),以在您的应用不在前台时启动和/或保持活动状态。

JobScheduler + JobService的侵入性较小,但其执行时间由系统管理,因此不适合即时请求。但是,您可以安排它定期运行,以检查是否有新内容要下载。

DownloadManager是一项系统服务。与其他方法不同,下载不会在您的应用程序过程中发生。那时您不需要自己编写任何连接方法,但是您所依赖的未知实现可能因设备而异。节流/卡死队列/取消之类的任何问题都无法控制。