按下后退按钮显示非页内广告?

时间:2016-11-29 04:48:56

标签: android admob

这是我的清单文件:

<activity
        android:screenOrientation="portrait"
        android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:theme="@android:style/Theme.Translucent" />

这是我的活动:

 @Override
public void onBackPressed() {
    InterstitialAd interstitialAd= new InterstitialAd(this);
    interstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen));
    AdRequest adRequest = new AdRequest.Builder().build();
    interstitialAd.loadAd(adRequest);

    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {

            if (interstitialAd.isLoaded()) {
                interstitialAd.show();
            }

        }

        @Override
        public void onAdClosed() {
            super.onAdClosed();
            finish();

        }
    });

}

我在按下后退按钮的同时只获得了2-3次广告屏幕。所以,我可以在每次按下后按钮时解决它。

3 个答案:

答案 0 :(得分:13)

好好试试这个

InterstitialAd interstitialAd = null;

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

       interstitialAd= new InterstitialAd(this);
        interstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen));
        AdRequest adRequest = new AdRequest.Builder().build();
        interstitialAd.loadAd(adRequest);

    }


    @Override
    public void onBackPressed() {
    if (interstitialAd.isLoaded()) {
        interstitialAd.show();
        interstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                super.onAdClosed();
                finish();
            }
        });
       }else{
           super.onBackPressed();
       }

    }

答案 1 :(得分:0)

如果您在onStart / onResume中添加了相同的代码,请删除它或删除onBackPressed中的代码。

因为当ActivityB占用前景时,活动A处于onPause和onStop状态。

当ActivityA返回时(从活动B按下后退),它将获得onStart,然后调用onResume(活动A)。

答案 2 :(得分:0)

您的代码存在的问题是,您是要保留加载广告的广告并在onback press上显示,加载时间间隔添加需要花费时间,有时也无法加载,加载广告失败或广告不可用时admob广告不会显示

更好的办法是在oncreate方法中加载插页式广告,然后在他的回答中以最大建议显示它们

并且在您的代码中,用户退出屏幕的方式是广告不可用?

这个案例也包含在最大答案中,所以请回答他的答案。如果广告没有显示,您必须考虑广告不存在它不是您的代码中的错误,我还建议在测试时使用此ID是测试广告并且其命中率将非常高

interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");