当我按下按钮时,插页式广告没有显示,但是在预期的活动之后显示

问题描述 投票:1回答:1

嗨,我不是编码员,如果您用正确的错误替换错误,那就太好了。我通过教程开发了此应用。当我按下按钮时,我想展示广告,然后,应该打开pdf书。但是目前,它还没有显示出出路。

package com.example.chickenfarmingurduguidebook;

            import androidx.appcompat.app.AppCompatActivity;

            import android.os.Bundle;
            import android.util.Log;
            import android.view.View;

            import com.github.barteksc.pdfviewer.PDFView;
            import com.google.android.gms.ads.AdListener;
            import com.google.android.gms.ads.AdRequest;
            import com.google.android.gms.ads.AdView;
            import com.google.android.gms.ads.InterstitialAd;
            import com.google.android.gms.ads.MobileAds;
            import com.google.android.gms.ads.initialization.InitializationStatus;
            import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

            import java.util.concurrent.Executors;
            import java.util.concurrent.ScheduledExecutorService;
            import java.util.concurrent.TimeUnit;

    public class book1 extends AppCompatActivity {
        private AdView mAdView;
        InterstitialAd mInterstitialAd;
        private InterstitialAd interstitial;
        PDFView book1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_book1);

            MobileAds.initialize(this,
                    "ca-app-pub-2352842633805231~7068128548");
            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);

            interstitial = new InterstitialAd(book1.this);
            interstitial.setAdUnitId("ca-app-pub-2352842633805231/4128772888");
            interstitial.loadAd(adRequest);
            interstitial.setAdListener(new AdListener() {
                public void onAdLoaded() {
                    displayInterstitial();
                }
            });

            book1 = (PDFView) findViewById(R.id.pdfbook1);
            book1.fromAsset("book1.pdf").load();


        }
        public void displayInterstitial() {
            if (interstitial.isLoaded()) {
                interstitial.show();
            }else {
                Log.d("TAG", "The interstitial wasn't loaded yet.");
            }
        }
    }
android android-studio
1个回答
0
投票

尝试这样的事情:

     interstitial.setAdListener(new AdListener() {
            public void onAdLoaded() {
                displayInterstitial();
            }

             public void onAdOpened() { // Called when an ad opens an overlay that covers the screen.
                book1 = (PDFView) findViewById(R.id.pdfbook1);
                book1.fromAsset("book1.pdf").load();
             } 
        });

参考:https://developers.google.com/android/reference/com/google/android/gms/ads/AdListener.html#onAdOpened()

这意味着广告加载过多(并希望显示在屏幕上),然后您将书显示在其背后的背景中。因此,当广告结束/将其关闭时,他们会看到您的书。


[如果我要重写您的活动并整理一下。它可能看起来像这样(将Activity名称从book1更改为ViewBookActivity):

import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.github.barteksc.pdfviewer.PDFView;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;

public class ViewBookActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_book1);

        MobileAds.initialize(this, "ca-your-ad-id");
        AdView adView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        adView.loadAd(adRequest);

        InterstitialAd interstitial = new InterstitialAd(book1.this);
        interstitial.setAdUnitId("ca-your-ad-unit");
        interstitial.loadAd(adRequest);
        interstitial.setAdListener(new AdListener() {
            @Override
            public void onAdLoaded() {
                displayInterstitial(interstitial);
            }

            @Override
            public void onAdOpened() {
                PDFView book1 = (PDFView) findViewById(R.id.pdfbook1);
                book1.fromAsset("book1.pdf").load();
            }
        }); 
    }

    public void displayInterstitial(InterstitialAd advert) {
        if (advert.isLoaded()) {
            advert.show();
        } else {
            Log.d("TAG", "The interstitial wasn't loaded yet.");
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.