所以我有一个应用程序,其中我使用异步任务使用rest API从Django后端获取数据。当设备需要与站点同步时,将首次使用此选项。 因此,此同步任务会获取大量数据(2 GB)。我已经在很多地方读过,当进程不超过2-3秒时,确实应该使用异步任务。在我的情况下肯定会花更长的时间。
答案 0 :(得分:3)
使用Service
它适用于长时间运行的任务,与您的Activity生命周期无关
如果您还将通知与下载相关联,则会对用户特别有用,显示进度(因为2GB可能需要花费大量时间来获取,特别是在移动连接上。说到这一点 - 请不要在移动连接上获取2GB的数据,而不会让用户明白你要做到这一点,或者让他们选择退出或仅在通过WiFi连接时这样做。数据有限的用户会感谢你; )
Here's a tutorial about services
或者您可以让操作系统处理所有这些并使用DownloadManager来获取文件。它负责设备重启,连接问题等 Sample project,Tutorial
答案 1 :(得分:0)
最好使用IntentService在后台执行长时间运行的任务。它也将在完成工作后自动完成。