单例模式惹得祸

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

一、背景

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

二、问题原因

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

三、埋坑

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

输入法惹得祸

刚用VC编程,编完后,一编译。一个错误出现,如下: fatal error C1083: Cannot open precompiled header file: 'Debug/SCommTest....
  • call_from_dream
  • call_from_dream
  • 2014年12月12日 16:40
  • 576

都是虚拟机惹得祸

用了这么多年的windows,从最初的windows98;ME;2000;XP;2003;到win7,不说对windows知根知底也差不多了,自从来到台湾之后,在这个要求版权的地方,没办法像以前一样大...
  • sibang
  • sibang
  • 2014年08月21日 16:40
  • 382

体验Ipython 惹得祸

IPython notebook目前已经成为用Python做教学、计算、科研的一个重要工具。本文介绍IPython notebook的一些基本用法,以及如何使用它调试Cython程序。IPython ...
  • zww1984774346
  • zww1984774346
  • 2017年02月27日 11:00
  • 634

都是“世界杯”惹得祸

世界杯,让今年的夏天充满雄性荷尔蒙的味道。为进球呐喊,为丢球懊恼,球迷们的激情得到充分释放,啤酒、夜宵更让6、7月的夏夜变得愈加丰富多彩。精彩的球场,同样充满无奈和叹息,在绿茵场上叱咤的球星,稍不留神...
  • u013825619
  • u013825619
  • 2014年02月28日 20:02
  • 125

都是编译器惹得祸

吕同学的问题终于解决了,备份以下,顺便分享一下。   问题: 在使用boost::scoped_ptr时模板参数使用前置声明类型,编译器报错。   前置声明是个好习惯,既可以减...
  • Owen_owen_lee
  • Owen_owen_lee
  • 2014年01月07日 09:44
  • 1737

写时拷贝惹得祸

【问题表现】hydra cgi底层库取出来的参数不对   【问题定位】 1. 确认是否库的问题 check out hydra-release_src-3.10.0,拷...
  • u012449147
  • u012449147
  • 2014年08月20日 11:24
  • 413

都是IE代理惹得祸

这真的不是 浏览器缓存。
  • gopenghuashan
  • gopenghuashan
  • 2016年05月19日 15:41
  • 317

偷窥惹得祸 从恶搞视频看IT巨头争斗根源

不要以为只有硝烟弥漫、炮声阵阵才是战场,IT领域之中的战争其实从来就没有停息过,特别是那几个科技巨头,如苹果、谷歌、微软等,它们之间就在不断的厮杀。有人说它们是为了金钱,有人说是为了霸主地位,其实不然...
  • wenxian31
  • wenxian31
  • 2013年06月06日 14:27
  • 540

“是福不是祸,是祸躲不过”这句话对吗?

对. 在物质世界里有唯物唯心的说法,但是在自己的精神世界里,没有这样的强制性规定,人,就是生活在自己的信念里的.世上的任何一句话,只要你认为是正确的,他就是正确的.塞翁失马的故事听过吗?他的儿子摔断...
  • taikeqi
  • taikeqi
  • 2017年01月12日 19:56
  • 593

全局变量惹的祸

hack your code
  • wangzhicheng2013
  • wangzhicheng2013
  • 2017年03月26日 18:54
  • 128
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式惹得祸
举报原因:
原因补充:

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