2

所以我有一个应用程序,我在其中使用异步任务使用 rest API 从 Django 后端获取数据。这将在设备需要与站点同步时首次使用。所以这个同步任务会获取相当多的数据(2 GB)。我在很多地方读到过,当进程不超过 2-3 秒时,确实应该使用异步任务。在我的情况下肯定会花费更长的时间。

  1. 那么我在这里的替代方案是什么?处理程序?有人可以指出解释如何做的教程或文章吗?
  2. 在同步过程中,我的设备会关闭显示屏以节省电量。因此活动被破坏。现在同步完成后,我会显示一个对话框,使用“AlertDialog”类通知用户。这会导致错误:Activity 已经泄露了一个窗口。这是一个严重的问题吗?可以做些什么来避免这种情况?使用片段显示对话框?
4

2 回答 2

3

使用服务
它适用于长时间运行的任务,与您的 Activity 生命周期无关。
如果您还将通知与下载相关联以显示进度,这对用户特别有帮助(因为 2GB 可能需要大量时间来获取,尤其是在移动连接上。说到这一点 - 请不要在移动连接上获取 2GB 的数据,但没有让用户清楚地知道你将要这样做,或者让他们选择退出,或者仅在通过 WiFi 连接时才这样做。数据受限的用户会感谢你; )
这是一个关于服务的教程

或者您可以让操作系统处理所有这些并使用DownloadManager来获取文件。它负责设备重启、连接问题等。
示例项目教程

于 2013-11-08T12:07:57.133 回答
0

最好使用 IntentService 在后台执行长时间运行的任务。它也将在完成工作后自动完成。

于 2017-03-02T08:04:37.240 回答