【问题标题】:android asynctask retrieve after re-enter an activityandroid asynctask 重新进入活动后检索
【发布时间】:2013-07-26 18:33:20
【问题描述】:

我想构建一个可以在后台下载图像的“智能下载器”(使用 AsyncTask)。 有两个Activity,A和B。在Activity A中,我可以选择我要查看的图片列表,(如果没有下载过就先下载)。然后进入activity B,这里我启动了一个异步任务来在后台下载图片,在UI线程中,将图片展示给用户。

有些大型列表可能需要几分钟才能完成下载。一个棘手的问题是,当 asynctask 仍在下载列表时,用户可能会退出活动 B(回到活动 A。(我知道即使活动 B 被破坏,异步任务仍将继续工作)。 但是如果此时用户选择另一个列表来查看(然后输入活动 B)。想暂停一下之前的任务,开始先下载新列表,再下载旧列表。 我的想法是检索以前的 asynctask 并修改下载顺序。但我不知道如何检索异步任务,我搜索了一些关于重新创建异步任务的问题,但它们都是关于重新配置后的(比如旋转屏幕)。在我销毁活动并重新创建它之后,有没有办法检索后台工作的异步任务。

谢谢!

【问题讨论】:

    标签: android android-asynctask


    【解决方案1】:

    一旦你销毁了一个 Activity,AsyncTask 就消失了。因此,如果您想避免从头开始运行后台操作,AsyncTasks 并不是最佳解决方案。

    我认为您应该构建您的应用程序以使用 IntentService 下载图像。在活动 A 中,选择图像列表。选择后,启动 IntentService 以下载图像。一旦 IntentService 完成,它可以通知用户操作已完成或将本地广播消息发送回活动。在任何一种情况下,即使用户已经离开活动,工作也没有消失。如果活动被破坏,您可以确定下载是否完成,如果是,则显示图像。如果没有完成,你可以放一个活动指示器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多