android中的messenger会导致内存泄漏

版权声明:本文为农场老马原创文章,未经农场老马允许不得转载。 https://blog.csdn.net/a345017062/article/details/16922147


如下这个文章所述messenger的使用方式,会导致内存泄漏。 http://blog.csdn.net/huaciom/article/details/7232302 原因是一个进程A中的callbackA会被另一个进程B持有。callbackA中如果包含context,泄漏就很大了。所以,需要确保callbackA在B中被及时释放。我们需要注意的是,即使在B中把callbackA的引用置为null,B进程的gc不一定会回收callbackA这样的小对象,这样进程A中的callbackA对象及它所引用的一切对象就都无法得到及时释放。所以,我建议是:1,尽量减少这种使用方式,使用aidl,广播等传递消息。2,如果一定要用,尽量减少callbackA的生命周期,并及时释放引用,同时手动调用gc,增加回收速度。

展开阅读全文

没有更多推荐了,返回首页