将 AdMediator 与 pubCenter 和 AdMob 结合使用时出现内存泄漏
Memory leak using AdMediator with pubCenter and AdMob
我在 Silverlight Windows Phone 8.0 应用程序中使用最新版本的 AdMediator。
我将其用于 Google AdMob 和 Microsoft 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
我在 Silverlight Windows Phone 8.0 应用程序中使用最新版本的 AdMediator。
我将其用于 Google AdMob 和 Microsoft 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