首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AdMob RewardedVideoAd一直在后台运行

AdMob RewardedVideoAd一直在后台运行
EN

Stack Overflow用户
提问于 2017-09-01 23:27:55
回答 2查看 727关注 0票数 0

所以我有一个字段:

private lateinit var adMobAd: RewardedVideoAd

然后我在onCreate()方法中初始化它:

adMobAd = MobileAds.getRewardedVideoAdInstance(this)

我在onDestroy()方法中销毁了它:

public override fun onDestroy() { adMobAd.destroy(this) super.onDestroy() }

但当我点击按钮加载广告,然后快速离开活动时,几秒钟后就会显示一个广告(我在onRewardedVideoAdLoaded()回调中显示广告)。这是非常糟糕的行为,特别是当广告不可跳过的时候。当它完成时,它也会调用回调,所以我当然会崩溃。此外,我在我的奖励视频中使用了一些中介,比如

implementation 'com.google.ads.mediation:adcolony:3.1.2.0' implementation 'com.google.ads.mediation:tapjoy:11.11.0.0' implementation 'com.google.ads.mediation:unity:2.1.0.0'

我怎样才能防止这种情况?

EN

回答 2

Stack Overflow用户

发布于 2017-09-01 23:42:07

您可以尝试添加一个标志,并检查广告是否可用,然后再显示广告?

代码语言:javascript
复制
fun onDestroy(){ isDestroyed =true  ...}

在单击按钮时,您可以检查广告是否已经加载,或者活动是否正在排队等待销毁。

代码语言:javascript
复制
if(admobAd.isLoaded() && !isDestroyed){ admobAd.show() }
票数 1
EN

Stack Overflow用户

发布于 2017-09-02 00:28:44

OnDestroy并不总是被调用,所以也使用OnPause,所以它们中的一个将被调用。在您的活动中,销毁onPause方法中的广告。添加以下代码:

代码语言:javascript
复制
@Override
protected void onPause() {
    super.onPause();
    adMobAd.destroy(this);
}

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46003531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档