Android:正确销毁asyncTask?

标签 android thread-safety android-asynctask

我目前正在使用 asyncTask() 随着我的 Activity 的进展进行位图图像的一些后台交换,并且一切正常;直到我结束任务所在的 Activity 。任务的线程进入“等待”状态而不是被销毁?我已取消,并检查了 .isCancelled() 的返回值。这实际上并不是一个问题,除非当我从 MAIN Activity 再次重新启动我的 Activity 时,它实际上会为新的 asyncTask() 创建一个新线程;从而让旧的那个坐在后台“等待”?这是一个错误,还是我只是错误地使用了此功能?

最佳答案

AsyncTask 使用线程池。您在调试面板中看到 4/5 异步任务是正常的。只需确保您的异步任务不持有对 Activity 的强引用(尝试使这些异步任务成为静态内部类(或事件单独的类),并让它们持有对 Activity 的弱引用而不是强引用。

关于Android:正确销毁asyncTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741995/

相关文章:

c++ - 空指针检查线程安全

Python 队列消费者

java - DRY:AsyncTasks 的案例

android - 开始一个使用 asynctask 的新 Activity

java - 如何在 HttpURLConnection 中添加 AsyncTask?

Android IPC : onServiceConnected called, 后跟 NullPointerException

android - 运行 ionic cordova build android 时如何修复 AAPT 错误前景 Activity 未找到?

c# - 从线程MVVM更新进度栏

c# - 该方法已弃用 "palette.generate"来自 android 支持库

java - 多核处理器上的 Android 错误