2017-09-23 20 views
0

私のアプリにAdMobが組み込まれたアンドロイドアプリを作成していますが、20秒間WebViewを読み込んだ後にAdMobを使用して広告を表示しています。問題はユーザーが20秒前にアプリを終了してもGoogle AdMobポリシーに違反してインタースティシャル広告が表示される場合です。ユーザーがアクティビティやアプリを終了したときにどうすればいいですか?アプリを終了してもAdMobインタースティシャル広告が表示される

これは私ですコード:

new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     interAd = new InterstitialAd(MainActivity.this); 
     interAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); 
     AdRequest adRequest = new AdRequest.Builder() 
       .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID") 
       .build(); 
     interAd.loadAd(adRequest); 
     interAd.setAdListener(new AdListener() { 
       @Override 
       public void onAdLoaded() { 
        interAd.show(); 
     } 
    }); 

    interAd.setAdListener(new AdListener() { 
     @Override 
     public void onAdClosed() { 
      // Code to be executed when the interstitial ad is closed. 
      Log.i("Ads", "onAdClosed"); 
      } 
     }); 
    } 
} , 20000); 

答えて

0

がonBackpressとonDestroy overidesを追加し、ハンドラのコールバックを削除し、それらのそれぞれにnullにInterstitialAdに変数を設定します。

@Override 
protected void onBackpressed() { 
    handler.removeCallbacks(your handler name here); 
    interAd =null 
    super.onBackpressed(); 
} 

@Override 
protected void onDestroy() { 
    handler.removeCallbacks(your handler name here); 
    interAd =null 
    super.onDestroy(); 
} 

アプリをバックグラウンドで使用している場合にもこれを処理したい場合は、onPauseもオーバーライドします。

@Override 
protected void onPause() { 
    handler.removeCallbacks(your handler name here); 
    interAd =null 
    super.onPause(); 
} 

希望します。

さらなる支援が必要な場合はお知らせください。

0

onDestroyがエラーに動作しない

Handler myHandler = new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 

      interAd = new InterstitialAd(MainActivity.this); 
      interAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); 
      AdRequest adRequest = new AdRequest.Builder() 
        .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID") 
        .build(); 
      interAd.loadAd(adRequest); 
      interAd.setAdListener(new AdListener() { 
       @Override 

       public void onAdLoaded() { 
        if(interAd.isLoaded() && interAd !=null) 
         interAd.show(); 
       } 
      }); 

      interAd.setAdListener(new AdListener() { 

      @Override 
      public void onAdClosed() { 
       // Code to be executed when the interstitial ad is closed. 
       Log.i("Ads", "onAdClosed"); 
      } 
    }); 

     } 
    } , 20000); 



@Override 
    protected void onDestroy() { 
     Log.d("MainActivty","onDestroy removing callbacks..."); 
     handler.removeCallbacks(myHandler); 
     interAd =null 
     super.onDestroy(); 

} 
+0

を呼び出したときにちょうどあなたのハンドラを渡す:互換性のない型を。必要なandroid.os.handlerがbooleanを見つけました。また、android.os.handlerをインポートしています –

関連する問題