本文主要是介绍2021-06-20 Bug-->This AsyncTask class should be static or leaks might occur,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
项目场景:
当我在项目中需要对一个复杂操作进行异步处理时,需要使用AsyncTask进行异步,而我们写完后,android studio提示内存泄漏,需要让这个AsyncTask内部类成为静态类,成为静态类后这个问题也没有得到解决,还是会报这个
This AsyncTask class should be static or leaks might occur
问题描述:
如何解决AsyncTask会报内存泄漏的警告。
原因分析:
AsyncTask有对使用它的Activity或者Fragment有隐式的引用,而这种引用是强引用,强引用在Fragment或者Activity销毁时,我们的内部AsyncTask可能还有对Activity或者Fragment的内存访问权的持有,所以会导致内存泄漏。
解决方案:
在AsyncTask的构造方法中,传入this,然后把this转为弱引用,之后再把AsyncTask设置为静态,警告就可
这篇关于2021-06-20 Bug-->This AsyncTask class should be static or leaks might occur的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!