单例模式惹得祸

原创 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....

单例模式

  • 2015年06月24日 10:08
  • 21KB
  • 下载

Android线程池+单例模式+webService

  • 2017年11月01日 10:36
  • 50.14MB
  • 下载

一个static修饰符惹得祸

调试环境:xpsp3 vs2005       最近在写一个小工具,中途遇到一个小bug,调试了我个把小时才完全搞清楚是怎么回事……下面是一段经过高度简化的代码: #include "stdafx...

单例模式

  • 2013年11月14日 14:44
  • 24KB
  • 下载

单例模式详解

  • 2014年06月06日 00:14
  • 25KB
  • 下载

都是IE代理惹得祸

这真的不是 浏览器缓存。

单例模式学习

  • 2013年01月06日 15:20
  • 3KB
  • 下载

耦合和单例模式的理解

  • 2014年08月18日 09:28
  • 21KB
  • 下载

都是编译器惹得祸

吕同学的问题终于解决了,备份以下,顺便分享一下。   问题: 在使用boost::scoped_ptr时模板参数使用前置声明类型,编译器报错。   前置声明是个好习惯,既可以减...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例模式惹得祸
举报原因:
原因补充:

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