gpt4 book ai didi

Android - 使用 AsyncTasks 的正确方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:36 25 4
gpt4 key购买 nike

使用异步任务的正确方法是什么?假设用户输入一个 Activity ,asynctask 启动,当 asynctask 运行时用户决定导航到另一个页面。

  • anynctask 会怎样?它会一直运行到完成吗?
  • 我是否负责以某种方式停止这个异步任务?

最佳答案

异步任务将继续运行。 asynctask 可能会终止,因为 Android 操作系统会在内存不足时尝试回收内存。如果您不关心异步任务可能无法完成,那么这可能无关紧要,但这是一种不好的做法。

此外,根据您存储/处理结果的方式,当异步任务结束时,您可能会尝试编辑该 Activity 中不再存在的 Activity/对象,从而导致空指针异常和其他不良事件。执行此操作的正确方法是从您的 Activity 启动一个服务并从该服务启动一个异步任务。您应该遵循在 Google IO 2010 上的这次演讲中概述的设计模式之一:

Android REST Client Design Patterns

那个谈话很有趣但是很难理解并且没有给出代码,所以这是我用来学习这些东西的一个很好的教程:

Downloading Data with Services

此外,android 将为您管理异步任务的线程池(我相信当您的进程中有超过 5 个时,它会开始杀死它们),您不必杀死它们。在这里查看答案:

How AsyncTasks die

关于Android - 使用 AsyncTasks 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com