美文网首页android内存管理
android内存泄漏快速解决——忘记取消监听

android内存泄漏快速解决——忘记取消监听

作者: 朱_c713 | 来源:发表于2020-01-16 17:07 被阅读0次

    Activity添加监听器造成Activity内存泄漏

    public class LeakActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            NastyManager.getInstance().addListener(this);
        }
    }
    

    这个是在开发中经常会犯的错误,NastyManager.getInstance() 是一个单例,当我们通过 addListener(this) 将 Activity 作为 Listener 和 NastyManager 绑定起来。
    仿佛运行monkey或者在集成leakCanary的时候,手点一些逻辑。爆出泄漏。

    如何改进?
    想要修复这样的 Bug,其实相当简单,就是在你的 Acitivity 被销毁的时候,将他和 NastyManager 取消掉绑定就好了。

    public class LeakActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            NastyManager.getInstance().addListener(this);
        }
     
        @Override
        protected void onDestroy() {
            super.onDestroy();
            NastyManager.getInstance().removeListener(this);
        }
    

    Android内存泄漏解决(总)

    相关文章

      网友评论

        本文标题:android内存泄漏快速解决——忘记取消监听

        本文链接:https://www.haomeiwen.com/subject/cpzfzctx.html