gpt4 book ai didi

android - 如何结束 AsyncTask onBackPress() 并且如果它没有完成它是否仍然运行?

转载 作者:行者123 更新时间:2023-11-29 14:23:34 27 4
gpt4 key购买 nike

我在几个 Activity 中使用 AsyncTask。

我知道如何覆盖 onBackPress()。

但是当 AsyncTask 正在运行时,我想让用户能够返回,即使 asynctask 仍在运行。

我该怎么做?

当启动它的 Activity 在完成之前关闭时,异步任务是否仍然运行?

最佳答案

AsyncTasks 会一直运行直到它们完成或被取消。因此,在您的情况下(用户按下返回键,您结束主要 Activity ),AsyncTask 将继续。

如果你确实想从 onBackPressed 结束 AsyncTask,你能做的最好的事情就是调用

myAsyncTask.cancel(true);

但所做的只是调用任务的 onCancelled(),它可以设置一个可以在 doInBackground() 中(通常)检查的取消标志 - 如果它是设置任务可以返回。

请注意,使用 cancel(true) 不会停止任务。文档讨论了在真实情况下“中断”任务,但它们的意思是 onCancelled 将在 doInBackground 运行时被调用——此时任务有机会设置 doInBackground 可以检查的标志。

对于 true 的情况,如果任务没有实现 onCancelled,和/或它没有设置/检查标志,任务将完成 doInBackground,但永远不会调用 onPostExecute(Object) - 这等同于 false 的情况.

关于android - 如何结束 AsyncTask onBackPress() 并且如果它没有完成它是否仍然运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562625/

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