2017-09-23 53 views
0

我正在使用AdMob集成應用程序中的Android應用程序,我使用AdMob在加載WebView 20秒後顯示廣告。問題是當用戶在20秒之前關閉應用程序間隙性廣告仍然顯示,這是違反谷歌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和刪除您的處理程序回調,並設置在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 overide。

@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發現布爾值,我也有android.os.handler –

相關問題