android如何释放资源文件,Android开发 如何最优的在Activity里释放资源

本文探讨了Android开发中常见的内存泄漏问题,重点在于如何在Activity中正确释放资源以防止内存泄漏。错误的释放资源方式,如在onDestroy()、finish()或onPause/onStop()中释放,可能会导致问题。推荐的做法是在onPause()或onStop()结合onDestroy()使用isFinishing()判断来释放资源,并在onDestroy()中进行兜底释放,以确保在各种情况下资源都能得到正确释放。同时,文章也提及了Fragment中资源释放的注意事项。
摘要由CSDN通过智能技术生成

前言

当前你已经入门Android开发,开始关注深入的问题,你就会碰到一个Android开发阶段经常碰到的问题,那就是内存泄漏. 其实大多数Android的内存泄漏都是因为activity里的资源释放不正确导致,activity与单例或者接口互相持有无法释放.这篇博客就来讲解如何在Android里最优的释放资源.

错误释放资源的一些例子

在看正面例子之前,我们看看反面例子,了解为什么经常莫名其妙的内存泄露

在Activity的onDestroy()的生命周期里释放资源

在下面的onDestroy()方法里我们有一个叫mHttpList的资源要释放,我们都知道activity的生命周期的最后是onDestroy方法,那么为什么在onDestroy()里释放资源会有问题呢?

问题出在onDestroy()生命周期并不是立即执行的.Activity退出前台后先是进入栈里的.是否执行onDestroy()是交给系统决定的,一般情况下系统的确会及时的运行onDestroy()方法销毁activity,但是在一些Activity跳转频繁的情况下可能系统并不会马上运行onDestroy()方法.这个时候问题就出现了你认为应该结束的资源并没有马上结束可能导致一些回调报错或者内存泄露.

复制代码

@Override

protected void onDestroy() {

super.onDestroy();

if (mHttpList != null){

mHttpList.release();

mHttpList = null;

}

}

复制代码

在Activity的finish()方法里释放资源

同上环境,那么finish方法里释放资源有那些问题呢?

重写的finish()是一个释放资源的好地方,在按返回键(或者你自己

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值