【发布时间】:2013-11-08 11:42:04
【问题描述】:
所以我有一个应用程序,我在其中使用异步任务使用 rest API 从 Django 后端获取数据。这将在设备需要与站点同步时首次使用。 所以这个同步任务会获取相当多的数据(2 GB)。我在很多地方读到过,当进程不超过 2-3 秒时,确实应该使用异步任务。在我的情况下肯定会花费更长的时间。
- 那么我的选择是什么?处理程序?有人可以指出解释如何做的教程或文章吗?
- 在同步过程中,我的设备会关闭显示屏以节省电量。因此活动被破坏。现在同步完成后,我显示一个对话框,使用“AlertDialog”类,通知用户。这会导致错误:Activity 已经泄露了一个窗口。这是一个严重的问题吗?可以做些什么来避免这种情况?使用片段显示对话框?
【问题讨论】:
-
“我在很多地方读到过,当进程不超过 2-3 秒时,确实应该使用异步任务”。我不明白为什么。你能发布一些对这个“很多地方”的引用吗? AsyncTask 是一个 ExcetuorService 的后端。您可以随时 sublcas Thread 作为替代
-
如果应该更频繁地发生同步,我可能会考虑将同步实现为服务。这样你就不需要关心应用程序做了什么。但是,在 android 开发方面我是菜鸟,所以有人可能会为您提供更好的答案...
-
好问题,看看这个github.com/octo-online/robospice
-
@blackbelt 它在documentation中这么说
-
@nOiAd - 我检查了 robospice。虽然它看起来非常有用并解决了我的问题,但对于我目前的情况来说,它似乎也有点过头了。他们对整个过程有一些精彩的解释,也有一些很好的样本。但我认为他们缺少的是最简单场景的示例:使用异步网络请求执行长时间运行的网络操作并随进度更新的活动。至少我在他们的回购和维基中找不到它。如果我有更复杂的需求,我想我将来可能会使用它。
标签: android multithreading asynchronous memory-leaks android-asynctask