gpt4 book ai didi

android - 我们如何多次调用 NativeBannerAd 的 loadAd 方法?

转载 作者:行者123 更新时间:2023-12-03 13:27:40 27 4
gpt4 key购买 nike

我只是想在我的应用中管理广告的失败场景。所以,在 onError 之后由于某种原因(例如没有网络)触发我刚刚调用了loadAd NativeBannerAd的方法如下所示。但应用程序因 called more than once 而崩溃错误。

 mFacebookNativeBannerAd = NativeBannerAd(context, id)
val builder = mFacebookNativeBannerAd.buildLoadAdConfig()
builder.withAdListener(object : NativeAdListener {
// ...
// Other callback methods
override fun onError(p0: Ad?, error: AdError?) {
mFacebookNativeBannerAd.loadAd() // --> 'called more than once' exception
}
})
mFacebookNativeBannerAd.loadAd()

我没有在文档中看到任何关于此异常的描述。 NativeAd , NativeAdsManager , InterstitialAd对象适用于上述场景。但 NativeBannerAd 没有。

我怎样才能再次加载广告?

我使用的观众版本是 audience-network-sdk:5.6.1

最佳答案

曾经的 Facebook NativeBannerAd失败,则需要为每次重新加载创建一个新的横幅对象,因为不能再次使用相同的对象,因此您可以创建一个方法来实例化一个新的 NativeBannerAd对象并加载它。

你一定在想Why not reuse the same object from onError ?

因为这是代码的味道。如果出现网络错误(您的用例),添加将继续尝试自行加载(可以添加重试逻辑但仍然有代码气味),最终会使您的应用程序崩溃 StackOverflowException由于递归行为。

Documentation reference as POC

Ad Instance is not an ad manager. You are supposed to instantiate a new instance whenever you need "reload" an ad for native ads and banner ads.

关于android - 我们如何多次调用 NativeBannerAd 的 loadAd 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com