欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Handler机制中的recycle机制

程序员文章站 2024-03-24 15:34:58
...

这是Handler机制中的回收机制,理解起来很简单,感觉很是实用。
这个机制的体现是在Message。
跟这个机制相关的重要变成和api如下:

private static Message sPool;
public static Message obtain()
void recycleUnchecked()

static的对象在Java内存分配中会分配到方法区,几乎不参与GC。(GC的主要区域是Java堆)

每当需要Message的时候,调用obtain()要优于直接new一个。当然obtain()在消息池中没对象的时候也是通过new一个来得到Message的。
每次MessageQueue removeMessages的时候都胡调用recycleUnchecked来回收Message,将Message重新初始化后加到sPool中。
具体见Handler机制分析(2):
http://blog.csdn.net/u014137988/article/details/75040684
这个机制的好处是:如果有需要频繁创建和回收的对象,可以建立一个适当大小的static对象池,使之使用完后不被回收,再次需要创建对象时直接从对象池中拿就可以了。