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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图书管理系统C语言_c语言图书信息管理系统

    图书管理系统C语言_c语言图书信息管理系统【主要内容】开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)--输入(2)图书信息浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):①按书名查询②按作者名查询按照价钱排序按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简…

    2022年10月11日
    3
  • DHCP 协议(二)「建议收藏」

    DHCP 协议(二)「建议收藏」DHCP的全名叫什么?(DynamicHostconfigurationProtocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作;主要有两个用途:(1)用于内部网或网络服务供应商自动分配IP地址;(2)给用户用于内部网管理员作为对所有计算机作中央管理的手段。功能简述:它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会…

    2022年5月23日
    38
  • oracle:修改表名

    oracle:修改表名修改语句:ALTERTABLE旧表名RENAMETO新表名;

    2022年5月16日
    40
  • python安装库的方法「建议收藏」

    python安装库的方法「建议收藏」目录前言:??python安装库方法大全(以安装pygame库为例)?方法一、在pycharm内部直接安装【最简单的方法(直接上图)】?方法二、(在终端安装库)安装:✨1、使用pipinstall+(库的名称)直接安装✨2、使用国内镜像安装(加了镜像地址速度杠杠滴快??)​​​?​​​​​​​?方法二报以下错怎么办?​​​​​​​?小结方法一和方法二结语前言:对于新手来说,库的安装是遇到的第一个挑战,我也入了很多坑,所以想出一期安装库的步骤作者希望:.

    2022年10月2日
    2
  • expr_const在函数前与函数后的区别

    expr_const在函数前与函数后的区别const修饰常量,但是const并未区分编译时常量和运行时常量,而constexpr则只能是编译时常量,在C++11中提出。这篇文章,将详细讲解constexpr。一、常量表达式常量表达式(constexpression):指值不会改变并且在编译阶段过程就能得到计算结果的表达式。以下两种是常量表达式:constintmaxSize=10;constintlimit=maxSize+1;以下两种不是常量表达式:intstaff_size=27;cons..

    2022年9月29日
    4
  • 个人搭建git服务器_服务器搭建git仓库

    个人搭建git服务器_服务器搭建git仓库git在push的时候出现insufficientpermissionforaddinganobject错误//解决方法,在git库的目录下//明明一开始创建user的时候有执行这个命令,不知道什么原因chown-Rgit:gitmygit.gitGit本地中文文件名问题解决linux环境//Git本地中文文件名问题解决gitconfig–global…

    2022年10月5日
    2

发表回复

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

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