Как исправить "объявления не удалось загрузить: 0" для промежуточных объявлений в Android? - PullRequest
0 голосов
/ 16 апреля 2019

Мне нужно загружать рекламные вставки каждые 20 секунд в течение действия. У меня есть два действия, названные MainActivity и ListenActivity. В обоих действиях я написал один и тот же код, который я упомянул ниже:

private final String TAG = "RedFM_AdsDemoActivity";
private InterstitialAd interstitialListen;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_ads_demo);
    MobileAds.initialize(this, getString(R.string.google_ad_app_id));
    // Create the InterstitialAd and set the adUnitId.
    interstitialListen = new InterstitialAd(this);
    // Defined in res/values/strings.xml
    interstitialListen.setAdUnitId(getString(R.string.admob_interstitial_id_google));
    interstitialListen.loadAd(new AdRequest.Builder().build());
    interstitialListen.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {              
            loadInterstitial();
        }
    });
    resumeGame(20000);
}

private static final long GAME_LENGTH_MILLISECONDS = 20000;
public CountDownTimer countDownTimer;
public boolean gameIsInProgress;

public void createTimer(final long milliseconds) {
    // Create the game timer, which counts down to the end of the level
    // and shows the "retry" button.
    if (countDownTimer != null) {
        countDownTimer.cancel();
    }
    countDownTimer = new CountDownTimer(milliseconds, 1000) {
        @Override
        public void onTick(long millisUnitFinished) {

        }

        @Override
        public void onFinish() {
            gameIsInProgress = false;
            showInterstitial();
        }
    };
}

public void showInterstitial() {
    // Show the ad if it's ready. Otherwise toast and restart the game.
    if (interstitialListen != null && interstitialListen.isLoaded()) {
        interstitialListen.show();         
    } else {
        loadInterstitial();
    }
}

public void loadInterstitial() {
    // Request a new ad if one isn't already loaded, hide the button, and kick off the timer.
    if (!interstitialListen.isLoading() && !interstitialListen.isLoaded()) {
        System.out.println(TAG + "Listen  ads loaded");
        AdRequest adRequest = new AdRequest.Builder().build();
        interstitialListen.loadAd(adRequest);
    } else
        System.out.println(TAG + "Listen  ads not loaded");
    resumeGame(GAME_LENGTH_MILLISECONDS);
}

public void resumeGame(long milliseconds) {
    // Create a new timer for the correct length and start it.
    System.out.println(TAG + "Listen  resumeGame called ");
    gameIsInProgress = true;
    createTimer(milliseconds);
    countDownTimer.start();
}

@Override
protected void onPause() {
    super.onPause();
    if (countDownTimer != null)
        countDownTimer.cancel();
}
  • Когда я перемещаю ListenActivity в MainActivity, в это время загружаются объявления для обеих операций.
  • Но когда я перемещаю MainActivity в ListenActivity, в это время показ объявлений на MainActivity показывается, а на ListenActivity не загружается. Я получаю "объявления не загружались: 0" Помогите мне показывать объявления на ListenActivity при поступлении изMainActivity.
...