(未完成) 项目实践-内存泄漏 OutOfMemoryError

文章目录

前言

每次新点开的页面,即使出栈之后,数据也没有被清除,这样就越积愈多。
参考:https://segmentfault.com/a/1190000005087620

  1. 避免在 activity 或 fragment 之外传递 Context 对象。

  2. 永远永远不要创建静态的 Context 或 View 对象,或者将二者存储于静态变量中。这是内存泄露的首要标志。
    private static TextView textView; //DO NOT DO THIS private static
    Context context; //DO NOT DO THIS

  3. 总是记得在 onPause() 或 onDestroy() 方法中的取消注册监听器(listeners)。这包括 Android
    监听器,以及位置服务、显示管理器服务,还有自定义的一些监听器。

  4. 不要在 AsyncTasks(异步任务)或后台线程中存储指向 activities 的强引用。Activity 可能会关闭,但是
    AsyncTask 会继续执行,一直保存着对该 activity 的引用。

  5. 如果可以,使用 Context-application (getApplicationContext()),而不是某个 activity 的
    Context 对象。

  6. 尽力避免使用非静态的内部类。将引用存储至某个 Activity 或 View 内部会导致内存泄露。如果不得不存储引用,请使用
    WeakReference

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值