Рекламная вставка AdMob не отображается при переключении активности (Android)

В настоящее время я включаю AdMob в некоторые из своих приложений, но столкнулся с проблемой. Я пытаюсь отобразить вставку при изменении активности, так как это место, где она не будет раздражать пользователей.

Мое первоначальное понимание состояло в том, что показ объявления переведет действие в режим паузы и возобновит его после закрытия объявления.

Это предположение кажется неправильным, так как в приведенном ниже коде действие переключается напрямую, тост показывает, что реклама должна отображаться, но пока я не комментирую startActivity(намерение), я никогда не вижу рекламу,

Я загружаю объявление в onCreate, затем пытаюсь отобразить его в другом пустоте, который срабатывает при нажатии кнопки (и, конечно же, если он завершил загрузку к этому моменту времени).

Исходный код:

@Override
public void onCreate(Bundle SafedInstanceState)
{
    [...]
    LoadAd();
    [...]
}

public void ShowAd(){
    if (interstitial.isLoaded()) {
    interstitial.show();
    }
}

public void LoadAd(){
    String MY_AD_UNIT_ID=getResources().getString(R.string.AdID);
    // Create the interstitial.
    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId(MY_AD_UNIT_ID);

    // Create ad request.
    AdRequest adRequest = new AdRequest.Builder().build();

    // Begin loading your interstitial.
    interstitial.loadAd(adRequest);
}

public void SWITCHACTIVITY (View view) {
    ShowAd();
    Intent intent = new Intent (this, ANOTHERACTIVITY.class);
    startActivity(intent);
    finish();
}

Высоко ценим любой вклад в то, что я делаю здесь неправильно или как я смог добиться того, чтобы объявление отображалось, а действие переключалось / закрывалось ПОСЛЕ закрытия объявления.

Заранее спасибо!

1 ответ

Решение

Хорошо, так что я обошел это. Несколько некрасиво, но оно делает именно то, что я хочу. Перед вызовом ShowAd() я устанавливаю свое намерение, а затем запускаю его после закрытия объявления:

public void ShowAd(){
        if (interstitial.isLoaded()) {
            interstitial.show();
            interstitial.setAdListener(new AdListener() {
            public void onAdClosed() {
                if (PostAdIntent != null)
                {
                    startActivity(PostAdIntent);
                    PostAdIntent = null;
                    finish();
                };
            }
            });

        } else
        {
            if (PostAdIntent != null)
                {
                startActivity(PostAdIntent);
                PostAdIntent = null;
                finish();
                };
        }
}
Другие вопросы по тегам