#android #admob #ads
#Android #admob #реклама
Вопрос:
Я хочу показывать рекламу в одном из своих фрагментов, используя Admob. Фрагмент загружался медленно, когда я просто использовал метод loadAd()
, в onCreateView()
. Я провел некоторое исследование и заменил mInterstitialAd.loadAd( new AdRequest.Builder().build())
на
view.postDelayed(new Runnable() {
@Override
public void run() {
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}
}, 2000);
Проблема в том, что я не чувствую, что это что-то изменило… Фрагмент по-прежнему загружается медленно (мне приходится подождать несколько секунд, прежде чем появятся текстовые просмотры и кнопка).
У меня также есть этот прослушиватель, который я использую для перезагрузки рекламы каждый раз, когда она отображается, но я не думаю, что проблема возникает отсюда (и это следует рекомендациям, приведенным в документах Admob) :
mInterstitialAd.setAdListener( new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}
});
Ответ №1:
Я бы посоветовал вам не использовать обработчики или какой-либо способ приостановить основной поток.
Я не сразу понял проблему, с которой вы столкнулись, прежде чем перейти на :
view.postDelayed(new Runnable() {
@Override
public void run() {
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}
}, 2000);
но это просто задержит показ вашего фрагмента.
Можете ли вы подробнее объяснить проблему, с которой вы столкнулись?
Комментарии:
1. Я использовал этот блок кода для задержки загрузки рекламы. Я думал, что сначала на экране появится фрагмент, а затем будет загружено объявление. Тем не менее, реклама по-прежнему загружается первой, и я просто получаю белый экран до завершения загрузки и появления фрагмента. Должен ли я переместить код в другой метод (отличный от onCreateView() )? Или я должен просто найти другой способ избежать замедления загрузки рекламы?