android释放内存的一个办法

step1:定义一个监听接口step2:androidapplication文件中添加如下代码//初始化//注册监听//内存空间过低的时候,被系统调用step3:那些浪费内存的地方,

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

step 1:定义一个监听接口

public static interface OnLowMemoryListener {  
        void onLowMemoryReceived();  
    }  /* 何问起 hovertree.com */

step 2:android application文件中添加如下代码

 

//初始化

private ArrayList<WeakReference<OnLowMemoryListener>> mLowMemoryListeners;  
/* 何问起 hovertree.com */
public MyApp() {  
        mLowMemoryListeners = new ArrayList<WeakReference<OnLowMemoryListener>>();  
    }  /* 何问起 hovertree.com */

//注册监听

public void registerOnLowMemoryListener(OnLowMemoryListener listener) {  
        if (listener != null) {  
            mLowMemoryListeners  
                    .add(new WeakReference<MyApp.OnLowMemoryListener>(listener));  
        }  
    }  
//移除监听  
    public void unregisterOnLowMemoryListener(OnLowMemoryListener listener) {  
        if (listener != null) {  
            int i = 0;  
            while (i < mLowMemoryListeners.size()) {  
                final OnLowMemoryListener l = mLowMemoryListeners.get(i).get();  
                if (l == null || l == listener) {  
                    mLowMemoryListeners.remove(i);  
                } else {  
                    i++;  
                }  
            }  
        }  
    }  /* 何问起 hovertree.com */

//内存空间过低的时候,被系统调用

@Override  
    public void onLowMemory() {  
        super.onLowMemory();  
        int i = 0;  
        while (i < mLowMemoryListeners.size()) {  
            final OnLowMemoryListener l = mLowMemoryListeners.get(i).get();  
            if (l == null) {  
                mLowMemoryListeners.remove(i);  
            } else {  
                l.onLowMemoryReceived();  
                i++;  
            }  
        }  
    }  /* 何问起 hovertree.com */

step 3:那些浪费内存的地方,比如图片缓存,可以实现并注册这个监听

推荐:http://www.cnblogs.com/roucheng/p/androidtuichu.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120344.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月27日 上午9:00
下一篇 2021年12月27日 上午9:00


相关推荐

  • nyaa镜像站 nyaa反向代理站「建议收藏」

    提供一个可以磁力转种子,并且资源中心里边是nyaa镜像站的网站:https://magnet-vip.com资源中心做了登录限定,防止无法访问!

    2022年4月7日
    962
  • VoIP技术介绍

    VoIP技术介绍目 nbsp nbsp 录 VoIPVoIP 简介 VoIP 的基本构成语音接口语音实体 nbsp 简介 VoIP VoiceoverIP 是基于 IP 分组交换网络 通过对传统的模拟语音信号进行数字化 压缩 打包 封装成帧等一系列处理 使得语音业务可以通过 IP 网进行承载 广义上讲 VoIP 是指在数据网络上承载数据 语音 传真和图像等多媒体业务 而在狭义上即是指在 IP 上传送语音业务 我们日常

    2026年3月19日
    2
  • JQuery的Ajax跨域请求的

    JQuery的Ajax跨域请求的

    2022年2月2日
    41
  • php语言的cmpp协议应用

    php语言的cmpp协议应用因为公司网站需要移动物联卡的获取短信内容和发送短信功能 本人上网查了一下 发现几乎全是 java 语言的 只有两个文章是关于 cmpp 的 php 开发 而且只有发短信 还有问题 这里将我开发的程序贴出来 代码也有些冗余 但功能都可以使用了 我开发的应用接收短信和发送短信在不同的文件接收短信是通过 linux 服务器 screen 来执行 php 文件获取短信 发送短信是前端页面填入卡号和内容 传给后台去

    2025年6月20日
    5
  • RPA 和 AI Agent 咋区分?数字员工和智能体选哪个好?

    RPA 和 AI Agent 咋区分?数字员工和智能体选哪个好?

    2026年3月16日
    3
  • matlab lsd检测,LSD直线检测,matlab工具箱

    matlab lsd检测,LSD直线检测,matlab工具箱【实例简介】LSD直线检测工具箱,可以通过配置,直接调用,详细的配置信息参见reco_toolbox目录下的readme.txt【实例截图】【核心代码】reco_toolbox├──license.txt└──reco_toolbox├──config_databases.m├──core│├──auroc.m│├──basicroc.m│├──ber_class…

    2022年5月26日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号