将 AdMediator 与 pubCenter 和 AdMob 结合使用时出现内存泄漏

Memory leak using AdMediator with pubCenter and AdMob

我在 Silverlight Windows Phone 8.0 应用程序中使用最新版本的 AdMediator

我将其用于 Google AdMobMicrosoft pubCenter

我注意到,当我导航到其他页面时,AdMediatorControl 不会释放它的内存,事实上在 10~15 次导航之后(取决于我有多少广告放在页面上)应用程序崩溃并出现 OutOfMemoryException.

如果我 从 XAML 中删除 AdMediatorControl,这不会发生并且 内存被正确释放(我可以在 Windows Phone Developer Power Tools 中看到它。

我试图在 OnNavigatedFrom 事件中将我的 AdMediatorControl 实例设置为 null,但这不会改变任何东西

因此我无法发布我的应用程序。你能帮帮我吗?

已解决! 我只需要为整个应用程序使用相同的实例。

这是我解决问题的方法:

我删除了 AdMediator 并使用 C# 手动实例化了横幅。 因此,我在 class 应用程序中创建了一个 AdView 和 AdRequest 实例(public 静态),我在 Application_Launching.

事件中对其进行了初始化

然后,在我需要横幅的每个页面中,在 OnNavigatedTo 事件中,我将 App class 的 AdView 设置为页面网格 (ContentGrid) 的子项,并在 AdRequest 实例上启动 LoadAd 方法应用 class.

然后,在 OnNavigatedFrom 事件中,我从网格的子项中删除了 AdView。

完成!不再有内存泄漏! :D