当前位置:  开发笔记 > 编程语言 > 正文

如何在配置更改和启动活动时避免重新加载Admob广告?

如何解决《如何在配置更改和启动活动时避免重新加载Admob广告?》经验,为你挑选了0个好方法。

这里使用横幅样本,我注意到如果我改变方向,广告就会消失,然后重新加载(需要时间),所以每当我改变方向时,都会有时间显示任何内容.

我知道可以通过清单为活动设置configChanges(实际上它可以工作),但这不是一般的建议.它有多个缺陷:

    在我的情况下,例如,更改方向让工具栏保持在相同的高度,这是错误的,因为它应该在横向上不同于在肖像上.

    转到另一个活动Admob视图仍然会重新加载,即使之前已加载.

    从纵向到横向,反之亦然,广告无法很好地适应新的方向.

在每次配置更改时,还可以采取哪些措施来避免重新加载广告?

我希望Admob一次加载广告(其余部分在后台加载新广告),然后展示,并避免在我更改方向时重新加载.每次到达时,只显示当前配置(例如方向)的最佳状态.

转到包含Admob广告的新活动也是如此.如果之前加载,则无需重新加载.


编辑:我对此表示赞赏,因为Google/Firebase支持通过电子邮件告诉我,实际上可以缓存广告:

广告SDK不会为您缓存广告,但您可以实施"AdManager"样式类,很可能是单个应用程序或附加到应用程序实例的实例,可以为您管理缓存.

当您认识到它是一种Android模式来销毁和重新创建方向上的活动时,实例状态通常通过包保存和恢复,但这不适用于视图.

如果您希望在此方案中优化横幅广告视图的重新加载时间,我建议您通过AdManager类制作广告请求,然后AdManager可以应用一些逻辑来缓存广告,例如您的横幅广告视图一段时间,并返回上一个横幅,如果它对新请求仍然有效(您将在方向更改时进行).

而且:

SDK没有实现缓存广告的这种想法,因为很难确定在所有情况下应用的最佳缓存逻辑,因此如果需要,开发人员可以实现适合其用例的缓存.

可能有一个与'AdView'类分离的横幅广告会产生更合适的可缓存对象,但目前情况并非如此.

因此,我们建议您为了预取/缓存横幅广告,您需要存储"AdView".然而,另一种支持且确实推荐的方法是使用ViewModel,而不是使用AdManager,请参阅 https://developer.android.com/guide/topics/resources/runtime-changes#RetainingAnObject 和 https://developer.android .com/topic/libraries/architecture/viewmodel.这些都是针对这种用例而设计的.

如果确实有可能,我想知道如何做到这一点.请成功执行此操作的人员,在代码中显示可以执行的操作.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有