gpt4 book ai didi

android - 服务关闭时的操作顺序

转载 作者:行者123 更新时间:2023-11-29 22:23:39 24 4
gpt4 key购买 nike

我正在编写一个使用 AsyncTask 执行某些网络操作的服务。假设 AsyncTask 的 doInBackground 花费了很长时间,当发生这种情况时,资源变少并且操作系统正在关闭服务。

AsyncTask 什么时候被杀死?当 onDestroy 被调用时,AsyncTask 是否仍在运行,或者它会在之后发生,还是我负责关闭 AsyncTask?我试图确保我的 onDestroy 中的代码和我的 doInBackground 中的代码之间没有竞争条件。

最佳答案

AsyncTask 将继续运行,直到您取消它或系统销毁托管它的进程。系统本身并不知道您的 AsyncTask,因此在关闭服务时不会对此做任何事情,它当然不知道服务创建了 AsyncTask。

很可能在调用 onDestroy 之后,应用程序的进程也将被销毁,AsyncTask 也将被销毁。但是,最安全的策略是主动取消 onDestroy 中的 AsyncTask。

一个可能有趣的旁注是,如果进程在处理之前死亡,则排队等待处理的请求将会丢失。因此,发送到 AsyncTask 的任何必须完成的操作都需要写入持久任务日志,以便在未完成时重新发出它们。

关于android - 服务关闭时的操作顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528793/

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