gpt4 book ai didi

Android - 内部类 AsyncTask 是否必须有 WeakReference?

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:09 25 4
gpt4 key购买 nike

假设我在 Activity 类中有一个内部类 AsyncTask。我必须在这个 AsyncTask 中有 weakRefeernce 吗?

此外,我是否必须始终为 AsyncTask 使用 weakReference?

最后,如果我将内部类 AsyncTask 声明为静态的,它安全吗?

最佳答案

是的,如果它是内部类或只是创建它自己的类,请始终将您的 Asynctask 声明为静态,尽量避免声明为非静态内部类,因为它会造成内存泄漏。 Read here for a more elaborate explanation why you should not do this

您不想使用 WeakReference对于 Asynctask,因为 android 2.3+ 的垃圾收集器非常积极,并且会非常快速地收集所有弱引用。此外,弱引用通常不是线程的好模式,它更适合内存占用量大的对象,如位图(但在 android 中不再像之前所说的那样)。

来自 http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

Starting from Android 2.3 (API Level 9) the garbage collector is more aggressive with collecting soft/weak references which makes them fairly ineffective.

关于Android - 内部类 AsyncTask 是否必须有 WeakReference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551484/

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