2016-11-29 60 views
0

這是我的清單文件:顯示按下後退按鈕上的插頁式廣告?

<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倍,而按回button.So,我怎樣才能解決它,在每個後退按鈕上按下。

+0

您可以在onCreate()事件中準備廣告,並將其呈現在onBackPressed()事件中。廣告準備工作需要一定的時間,所以如果您在onBackPressed()時準備廣告,那麼廣告在當時就沒有準備好了。 –

回答

10

試試這個

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(); 
     } 

    } 
+0

我使用了你的代碼...但是有時候廣告已經加載,有時候不是...是否強制所有時間在interstitialAd加載時都可以加載? –

+0

當然,如果廣告未加載/可用,我們如何顯示廣告? – Max

0

如果您在onStart/onResume中添加了相同的代碼,請將其刪除或刪除onBackPressed中的代碼。

因爲當ActivityB佔據前景時,ActivityA處於onPause和onStop狀態。

當ActivityA返回時(當從活動B返回按下時),它將獲得onStart,然後它調用onResume(Activity A)。

0

問題與你的代碼是你保持interstetial廣告加載,並同時顯示在onback機,裝載interstetial增加需要時間,有時它也無法加載,當它無法加載廣告,或者如果沒有廣告在AdMob廣告的情況不會顯示

更好的是在onCreate方法加載插頁式廣告,並將它們顯示在後面爲max在他的回答表明

,並在你的代碼將如何用戶從屏幕退出廣告不可用?

該案件也涵蓋在最大的答案,所以去與他的答案。如果廣告未顯示,則必須考慮廣告不存在並非代碼中的錯誤,我還建議使用此ID,同時測試它是否爲測試廣告並且其命中率將非常高

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