Android开发 内存泄露举例

前言

  在https://www.cnblogs.com/guanxinjing/p/10701192.html 这篇博客里了解了如何抓取与分析Android的内存泄露后,在这个博客里.将记录举例会引起内存泄露的情况.在android平台一般情况下的内存泄露都指页面(Activity或者Fragment等等). 因为他们会经常的进行创建与销毁. 所以除非特别指出,否则这篇博客的举例都是指view层泄露

 

单例持有

单例类

object Singleton{
    private var mActivity :Activity? = null
    
    public fun setActivity(activity :Activity){
        mActivity = activity;
    }
}

这里不限于Activity,如果将fragment或者dialog 交给单例类持有,也将有相同的内存泄露情况

在activity里的代码

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test_demo)
        Singleton.setActivity(this)
    }

解决思路

尽量不要将Activity交给单例持有,如果非要交给单例持有,也应该是弱引用持有

属性动画ObjectAnimator

 

 

 

 

 

 

End

上一篇:生命周期--艺术探索


下一篇:Android 自定义View:TopBar(1),androidstudio蓝牙应用开发