坚持活动期间的AdMob Ad State&在Android上导航

时间:2015-06-22 19:17:05

标签: android admob

澄清我想在多个活动中重复使用同一个广告。我基本上只想要广告来初始化&加载第一个活动,然后加载其他活动以显示已加载的广告。通过这种方式,我可以减少广告花费的时间,因为导航很快,广告也没有时间加载所有活动。

我正在考虑在Application类中存储对AdView的引用,并从那里延迟所有其他活动。但是,在这样做时,我觉得这可能会造成内存泄漏,因为AdView可能会保留对初始活动的引用,这会阻止GC清除与该活动关联的UI资源。

想知道是否还有其他解决办法?

2 个答案:

答案 0 :(得分:0)

没有适合您确切问题的好解决方案。 正如你所推测的那样,他们都会泄漏记忆。

最好的做法是使用一个具有多个片段的活动来切换。然后,您可以拥有一个始终存在的AdView片段。

请参阅https://developers.google.com/mobile-ads-sdk/docs/adx/android/quick-start

答案 1 :(得分:0)

AdView问题

仅引用一个Adview的问题非常棘手,因为one ad view can only hold one unique ad unit

没有关于如何重复使用广告或如何为同一广告视图对象使用多个广告代码的正确文档。但是,您可以将AdViews存储在Cache中,也可以使用它。

如果您希望稍后更改ad unit,则需要将广告存储在哈希地图中,并将广告代码作为关键字,将广告视图数组作为值。原因是您希望缓存中至少有2个广告视图。 AdViews通常占用大量内存,因为它类似于基于webview,并且在加载adunit后会进行一些后台渲染。

如果您使用广告视图Load ad needs to be called to actually view an ad,则可能无法使用预加载的广告在其他活动上查看同一广告。

同样,此答案中还没有代码,但如果您确实需要示例代码来了解如何实际缓存AdView并尝试重复使用它们以使您的应用更具内存效率,请留在评论中。