Хорошо, ребята, наконец-то я нашел быстрый обходной путь. Я обнаружил MobileAds.initialize(context, id)
и AdRequest.Builder().build()
в качестве задержки. Очевидно, что активность не будет полностью загружена, если onCreate
полностью не выполнено. Чтобы обойти это, я использовал Handler
, чтобы задержать MobileAds.initialize
и AdRequest.Builder().build
, и тогда это не приводит к задержке пользовательского интерфейса. Это мой обновленный код:
// we can't delay UI tasks so we need initialize adView here - it's not heavy task anyway
val mAdView: AdView = findViewById(R.id.adView)
mAdView.visibility = View.GONE
//delay ads to be displayed 2 sec after Activity is loaded
Handler().postDelayed({
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
initializeAds(mAdView)
}, 2000)
initializeAds(AdView)
:
fun initializeAds(adView: AdView) {
adView.loadAd(AdRequest.Builder().build())
adView.adListener = object : AdListener() {
override fun onAdLoaded() {
super.onAdLoaded()
//if ad is loaded just show it
if (adView.visibility == View.GONE) {
adView.visibility = View.VISIBLE
}
}
override fun onAdFailedToLoad(p0: Int) {
//if we can't show ad just hide it
super.onAdFailedToLoad(p0)
adView.visibility = View.GONE
}
}
}
Я надеюсь, что это поможет, если кто-то борется с подобной проблемой