首页 > 解决方案 > 应用程序崩溃:W/Ads:不建议在应用程序不在前台时显示插页式广告

问题描述

如果用户在插页式广告出现之前快速关闭活动,应用程序崩溃:

08-10 16:55:25.254 17484-17484/com.myapp
W/Ads: It is not recommended to show an interstitial when app is not 
in foreground.
08-10 15:44:58.470 14219-14219/com.myapp W/google-breakpad: ### ### 
### ### ### ### ### ### ### ### ### ### ###
08-10 15:44:58.470 14219-14219/com.myapp W/google-breakpad: Chrome 
build fingerprint:
08-10 15:44:58.470 14219-14219/com.myapp W/google-breakpad: 1.1
08-10 15:44:58.470 14219-14219/com.myapp W/google-breakpad: 2
08-10 15:44:58.470 14219-14219/com.myapp W/google-breakpad: 
45012863-7d3b-4c30-8ccf-e65394c57d85
08-10 15:44:58.470 14219-14219/com.myapp W/google-breakpad: ### ### 
### ### ### ### ### ### ### ### ### ### ###
08-10 15:44:58.471 14219-14219/com.myapp A/libc: Fatal signal 11 
(SIGSEGV), code 1, fault addr 0x4 in tid 14219 (t.myapp)

有两个活动。interstitialAd.show();onCreate第一个。

    final AdRequest adRequest = new AdRequest.Builder()
            .tagForChildDirectedTreatment(true)
            .build();

    MobileAds.initialize(this, "ca-app-pub-6546546546546546~6546544");
    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId("ca-app-pub-333333333333333/1111111");
    interstitialAd.loadAd(adRequest);
    interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            interstitialAd.show();
            }
        });

第一个活动通常需要 2-3 秒的用户,所以用户点击按钮和广告出现在第二个活动上。

    View.OnClickListener button = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //My code

            final Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
            toHeads.putExtra("ids", mId);
            startActivity(intent);
            FirstActivity.this.finish();
        }
    };

但是当SecondActivity也快速结束时(使用SecondActivity.this.finishAndRemoveTask();)应用程序崩溃。我想我需要在结束之前以某种方式停止插页式广告,SecondActivity但没有任何类似的功能interstitialAd.stopLoading()

标签: androidinterstitial

解决方案


推荐阅读