所以我有一个应用程序,其中我使用异步任务使用 REST API 从 Django 后端获取数据。当设备需要与站点同步时,将首次使用此功能。 因此,此同步任务会获取相当多的数据 (2 GB)。我在很多地方都读到,当进程花费的时间不超过 2-3 秒时,确实应该使用异步任务。就我而言,肯定需要更长的时间。
- 那么我的选择是什么?处理程序?有人可以指出教程或文章来解释如何操作吗?
- 在同步过程中,我的设备会关闭显示屏以节省电量。因此,该 Activity 被破坏。现在,同步完成后,我使用“AlertDialog”类显示一个对话框,通知用户相同的信息。这会导致错误: Activity 泄漏了窗口。这是一个严重的问题吗?可以采取什么措施来避免这种情况?使用 fragment 显示对话框?
最佳答案
使用 Service .
它适用于长时间运行的任务,与您的 Activity 生命周期无关。
如果您还将通知与下载关联起来,显示进度,这对用户会特别有帮助(因为 2GB 可能需要花费大量时间来获取,尤其是在移动连接上。说到这一点 - 请不要通过移动连接获取 2GB 数据,而无需让用户真正清楚您要执行此操作,或者让他们选择不执行此操作,或者仅在通过 WiFi 连接时执行此操作。数据受限的用户会感谢您; )
Here's a tutorial about services
或者您可以让操作系统处理所有这些并使用 DownloadManager获取文件。它负责处理设备重启、连接问题等。
Sample project , Tutorial
关于Android - 异步任务的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19858296/