微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐