Загрузка рекламы (Admob) замедляет работу приложения для Android

#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() )? Или я должен просто найти другой способ избежать замедления загрузки рекламы?