单例模式惹得祸

一、背景

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

二、问题原因

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

三、埋坑

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值