单例模式惹得祸

原创 2016年05月31日 16:32:06

一、背景

有个单例的工具类需要用到GLmapView的接口,为了使用方便吧GLmapView作为了单例对象的成员,后来发现在切后台回来会偶现调用GLmapView的接口会不生效。

二、问题原因

GLmapView和MapContainer是共生共存的,而MapContainer附着在NewMapActivity窗口上,在程序切后台时窗口有可能被onDestroy掉,MapContainer自然也被销毁了,待界面回到前台MapContainer和GLmapView都要被重新创建,所以此时操作的是一个应该被废弃的句柄,这样做不仅会走到错误的指针上,还有可能因为使用强引用导致引擎无法回收这个GLmapView.

三、埋坑

如果一定需要作为工具类的成员使用,首先应该把它转化为弱引用,其次每次在使用的时候都给它传一个最新的句柄

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

单例造成的内存泄漏

由于单例的静态特性使得其生命周期跟应用的生命周期一样长,所以如果使用不恰当的话,很容易造成内存泄漏。比如下面一个典型的例子,public class AppManager { private...

单利模式内存泄漏

在Java开发中,为了获得引用方便,我们的开发同学经常使用单例模式。该模式本身不会引起内存泄漏,但是如果和其它实例配合时候使用不当则会引起很大的隐患。究其原因在于单例模式中必然出现sInstance类...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)