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

Android-内部类AsyncTask是否必须具有WeakReference?,第1张

概述假设我在Activity类中有一个内部类AsyncTask.我必须在这个AsyncTask中拥有weakRefeernce吗?另外,我是否一直都必须对AsyncTask具有weakReference?最后,如果我将内部类AsyncTask声明为静态,是否安全?解决方法:是的,如果Asynctask是内部类或只是创建自己的类,则始终将其声明为静态,请

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

另外,我是否一直都必须对AsyncTask具有weakReference?

最后,如果我将内部类AsyncTask声明为静态,是否安全?

解决方法:

是的,如果Asynctask是内部类或只是创建自己的类,则始终将其声明为静态,请尝试避免将其声明为非静态内部类,因为这会导致内存泄漏. Read here for a more elaborate explanation why you should not do this

您不希望对Asynctask使用WeakReference,因为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?全部内容,希望文章能够帮你解决Android-内部类AsyncTask是否必须具有WeakReference?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1087459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存