问题:

  Activity中的context被传递给了一个生命周期长过activity的对象(通常为静态单实例变量),导致activity不能正常被销毁。

  示例:Activity 调用 ChatMgr 时将context传递进来,由于ChatMgr为单实例对象,context被引用,导致Activity退出时无法销毁。见代码:

public static ChatMgr getInstance(Context context)
{    if (instance == null){instance = new ChatMgr();}mContext = context;    return instance;
}

原理见:

http://www.cnblogs.com/shaweng/archive/2012/06/29/2570413.html

修改后代码:

public static ChatMgr getInstance(Context context)
{        if (instance == null){instance = new ChatMgr();}        if(mContext == null){mContext = context.getApplicationContext();context = null;}        return instance;
}

转载于:https://blog.51cto.com/zhanghuiyuan/1937048

Context 使用不当造成内存泄露相关推荐

  1. Java反序列化json内存溢出_fastjson反序列化使用不当致使内存泄露

    分析一个线上内存告警的问题时,发现了形成内存告警的缘由是使用fastjson不当致使的. 分析dump发现com.alibaba.fastjson.util.IdentityHashMap$Entry ...

  2. android oom 检测工具,Android中UI检测、内存泄露、OOM、等优化处理

    对Android整个优化分析,非常棒,下面是自己的积累笔记.可直接看原文. 界面检测工具: Fps: GPU检测, 使用Lint进行资源及冗余UI布局等优化 (很强大,布局的冗余) Memory检测G ...

  3. 使用ThreadLocal不当可能会导致内存泄露

    使用ThreadLocal不当可能会导致内存泄露 基础篇已经讲解了ThreadLocal的原理,本节着重来讲解下使用ThreadLocal会导致内存泄露的原因,并讲解使用ThreadLocal导致内存 ...

  4. String 使用不当可能导致内存泄露

    转载自   String 使用不当可能导致内存泄露 String是Java中一个比较基础的类,每一个开发人员都会经常接触到.而且,String也是面试中经常会考的知识点.String有很多方法,有些方 ...

  5. java: web应用中不经意的内存泄露

    前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...

  6. 如何使用Eclipse内存分析工具定位内存泄露

    本文以我司生产环境Java应用内存泄露为案例进行分析,讲解如何使用Eclipse的MAT分析定位问题 一. 背景 11月10号晚上8点收到报警邮件,一看是OOM 打开公司监控系统查看应用各项指标发现J ...

  7. android如何避免内存泄露,Android开发中应该避免的内存泄露

    一.背景和目的: 目前许多开发人员在Android开发过程中,较少关注实现细节和内存使用,容易会造成内存泄露,导致程序OOM. 本文会通过代码向大家介绍在Android开发过程中常见的内存泄露. 二. ...

  8. Android之内存泄露、内存溢出、内存抖动分析

      内存 JAVA是在JVM所虚拟出的内存环境中运行的,内存分为三个区:堆.栈和方法区. 栈(stack):是简单的数据结构,程序运行时系统自动分配,使用完毕后自动释放.优点:速度快. 堆(heap) ...

  9. JVM内存管理概述与android内存泄露分析

    一.内存划分 将内存划分为六大部分,分别是PC寄存器.JAVA虚拟机栈.JAVA堆.方法区.运行时常量池以及本地方法栈. 1.PC寄存器(线程独有):全称是程序计数寄存器,它记载着每一个线程当前运行的 ...

  10. Android 内存优化——常见内存泄露及优化方案

    如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回 收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄 露. 在 Android 开 ...

最新文章

  1. P1096 $Hanoi$双塔问题
  2. 人一样自然流畅地说话,下一代智能对话系统还有多长的路要走?
  3. Mybatis Interceptor 拦截器原理 源码分析
  4. 【转】关于WaterFall瀑布流式布局的性能优化
  5. ATL和ActiveX做的控件.dll和.ocx最主要的区别(摘录)
  6. 从智慧信号灯看智能城市管理
  7. kettle工具的设计原则
  8. tomcat启动startup出现闪退问题
  9. 简单个人静态HTML网页设计作品——广西北海家乡旅游景点 10页 DIV布局个人介绍网页模板代码 DW个人网站制作成品 web网页制作与实现
  10. ae去闪插件deflicker使用_ae去闪烁插件Flicker Free怎么用-ae去闪烁插件Flicker Free的使用教程 - 河东软件园...
  11. 自学编程,十年磨一剑
  12. Intel和AMD的区别
  13. GAMES202 笔记 -Real-Time Ray-Tracing
  14. Excel表格 |两列数据(多列)合并一列且自动换行
  15. Codeforces1422 F.Boring Queries(根号分治+线段树+可持久化线段树)
  16. java数据库验证用户名,java新手:注册时验证用户名是否在数据库里已存在
  17. 小米路由器3HD内网穿透成功
  18. 关于我们 - 飞客旅行网 - 最大的中文酒店常客,航空常客,信用卡讨论网站!...
  19. Linux命令之挂载文件系统mount
  20. DRG六大指标详细解释

热门文章

  1. android compare方法,如何的CompareTo或在Android Studio中
  2. cmake install_CMAKE入门实战
  3. 弱网环境搭建方案选型
  4. 用技术——设计模式22——行为型模式——模板模式——待补充
  5. SVN版本管理:两种开发模式
  6. 数组迭代方法之reduce
  7. 开源转场库HYBControllerTransitions
  8. Oracle Active database duplication
  9. solr之服务器搭建步骤
  10. Java中,类的实例化方法