我有一个测试项目,它演示了 Admob 4.1.1 引起的内存泄漏。
基本场景是我有两个活动,我在主活动和子活动之间来回切换几次。然后我切换到 DDMS 并强制执行一些 GC。然后转储 HPROF 并查看由 com.test* 过滤的直方图,看看有多少主活动和子活动实例。附上我的直方图截图:
泄漏!
然后我将 xml 中的广告注释掉并重新运行,没有泄漏:
现在没有泄漏
我发现了一些与 Admob 泄漏相关的帖子,例如:Android AdMob 导致内存泄漏?
以下是我尝试解决此问题的清单:
- 等待一段时间,然后强制 gc
- 不要在 oncreate 中加载广告,而是生成一个线程等待然后加载它
- 尝试了以前版本的 Admob(不是由 Google 编写的)
- 在 onDestroy() 活动的方法中调用 adView.destroy()
- 从此链接解除绑定
显然,这些东西都没有帮助。
这是我写的测试项目:
(运行测试项目时一定要设置自己的发布者ID)
如果它有所作为,我正在使用 Cyanogenmod ROM 在我的 SGS2 上进行测试。
其他人在运行这个项目时会发生这种情况吗?
有谁知道原因修复或解决方法?
谢谢