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


相关推荐

  • 阿里通义千问Qwen Chat桌面端发布,AI工具链加速多模态应用落地

    阿里通义千问Qwen Chat桌面端发布,AI工具链加速多模态应用落地

    2026年3月12日
    2
  • ThinkPHP 验证码详解及实例

    ThinkPHP 验证码详解及实例

    2021年8月29日
    89
  • mysql的索引有哪几种_MySQL索引数据结构

    mysql的索引有哪几种_MySQL索引数据结构摘要腾兴网为您分享:mysql索引类型有哪些,易信,微商助手,刷机精灵,数字涂色等软件知识,以及家校即时通,内部通讯录,叫叫识字大冒险,天天酷跑,手机电视高清直播,短信验证软件,诛仙表情包,一手女装,iis7,instagram视频,搭建卡盟主站,umbrella,qq音乐qmc0格式,图片降噪,钢筋锈蚀检测仪等软件it资讯,欢迎关注腾兴网。介绍各种类型的mysql索引。1、普通索引普通索引…

    2022年8月12日
    7
  • telnet用法 测试端口号

    telnet用法 测试端口号Telnet 是进行远程登录的标准协议和主要方式它为用户提供了在本地计算机上完成远程主机工作的能力 可以用 telnet 命令来测试端口号是否正常打开还是关闭状态 点击计算机的开始菜单 运行 输入 CMD 命令 然后确定 打开 cmd 命令行 步骤阅读 2 输入 telnet 测试端口命令 telnetIP 端口或者 telnet 域名端口回车

    2026年3月18日
    2
  • OpenClaw安装指南[项目源码]

    OpenClaw安装指南[项目源码]

    2026年3月15日
    3
  • 用心做软件—细节决定成败「建议收藏」

    用心做软件—细节决定成败「建议收藏」软件是什么?也许在编程者的眼中这是自己智慧的结晶,是技术运用的成果。但是在用户的眼中呢,用户会在乎你到底用了多少高级的技术、用了什么前卫的技术吗?我想大部分用户是不会管的,无论你是C#做的,Java做的,C++还是C做的,你的系统是Windows还是Linux,android还是塞班。用户的眼中你的软件只是一件产品,那么既然是产品,就要有价值,要能为用户带来方便,能为用户解决问题。当今的互联网上,

    2026年2月25日
    4

发表回复

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

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