美文网首页
android对于内存泄露和内存溢出的见解和简要解决方案

android对于内存泄露和内存溢出的见解和简要解决方案

作者: 小明好爱学习 | 来源:发表于2019-11-06 18:37 被阅读0次

内存泄露

内存没有及时的被收回可理解为内存泄露;
例如Activity中有一个耗时操作,耗时操作中有对Activity强引用;
当Activtiy被用户关闭时,耗时操作还没结束的话,此时activtiy不能被释放,造成内存泄露!
解决方案:
耗时操作中使用弱引用指向activtiy,这样activtiy的生命周期就不受耗时操作的影响了!
例子:

    static class MyTask extends AsyncTask<String, Integer, String> {
        private WeakReference<TextView> mWrTv;
        public MyTask(TextView textView) {
            mWrTv = new WeakReference<>(textView);
        }
        @Override
        protected String doInBackground(String... strings) {
            for (int i = 0; i <= 10; i++) {
                publishProgress(i);
                Thread.sleep(1000);
            }
            return "";
        }
        @Override
        protected void onProgressUpdate(Integer... values) {
            super.onProgressUpdate(values);
            int num = values[0];
            //这里可能为空,因为当activtiy被收回后mWrTv就会空,因此需要进行判断
            if (mWrTv.get() != null) {
                mWrTv.get().setText(num + "");
            }
        }
    }

内存溢出

当创建对象时,没有足够的内存时,便出现内存溢出(OOM),常见为listview加载图片;
解决方案:
采用软引用方式对图片对象进行引用;
当内存不足时系统便收回软引用的图片,从而解决oom;

相关文章

  • android对于内存泄露和内存溢出的见解和简要解决方案

    内存泄露 内存没有及时的被收回可理解为内存泄露;例如Activity中有一个耗时操作,耗时操作中有对Activit...

  • JAVA内存区域

    首先解释下内存溢出和内存泄露之间的区别,为后面的学习做些铺垫: 1、内存溢出和内存泄露的区别和联系 内存溢出 ou...

  • JAVA内存区域

    首先解释下内存溢出和内存泄露之间的区别,为后面的学习做些铺垫: 1、内存溢出和内存泄露的区别和联系 内存溢出 ou...

  • 内存优化

    内存优化主要是分析内存泄露和内存溢出。将从内存是怎么分配,内存怎么出现泄露和溢出,用工具判断什么情况出现泄露,找出...

  • Android内存泄露分析简要思路

    Android内存泄露分析简要思路

  • 探究Android内存溢出及内存泄漏

    从根本上探究Android内存溢出和泄露产生的原因以及如何快速方便的定位内存泄露和相应的解决办法 “A small...

  • JVM之内存模型

    Java内存内存区域图 内存泄露和内存溢出的区别 内存泄露是指分配出去的内存没有被回收回来 内存溢出是指程序所需要...

  • 内存泄漏和内存溢出是什么?一般怎么处理内存泄漏?

    1:内存溢出(OOM)和内存泄露(对象无法被回收)的区别。 (1)内存溢出:out of memory ,...

  • jvm2:Java内存溢出

    内存泄露和内存溢出的区别 内存溢出通俗理解就是内存不够了,不能分配足够大的内存。内存泄露就是程序中已动态分配的堆内...

  • Android基础知识(一)

    1、内存溢出和内存泄露有什么区别 内存溢出:应用的内存已经已经达到系统设置的最大值,进而导致崩溃 内存泄露:应用使...

网友评论

      本文标题:android对于内存泄露和内存溢出的见解和简要解决方案

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