2013-02-24 72 views
0

時按照DOC:https://developers.google.com/mobile-ads-sdk/docs/admob/advanced顯示AdMob聯播間隙原子從一個活動移動到另一個

我從一個活動請求,

interstitial.loadAd(adRequest); 
interstitial.setAdListener(this); 

而且顯示插頁時,在回調中接收

@Override 
    public void onReceiveAd(Ad ad) { 
    Log.d("OK", "Received ad"); 
    if (ad == interstitial) { 
     interstitial.show(); 
    } 
    } 

對接問題是onReceiveAd被調用之前,我目前的活動已完成,我轉移到另一個活動,所以onReceiveAd永遠不會被調用。

解決此問題的任何解決方法?

謝謝。

+0

簡單的解決辦法是,直到你得到的回調之一,只是不叫下一個活動(無論是接收/失敗)。 – Geobits 2013-02-24 19:06:47

+0

這是不可能的,或者它會阻止用戶界面,因爲有時填充率低於100%,這意味着沒有廣告可用。 – Howard 2013-02-25 14:59:47

+0

正確。這就是爲什麼你在「失敗」回調中也這樣做的原因。有關詳細信息,請參閱[此處](http://stackoverflow.com/a/13039350/752320)。 – Geobits 2013-02-25 19:15:48

回答

0

您是否找到了答案? 我打算這樣做,但我還沒有嘗試過,所以我不確定它會起作用:

在助手類上創建一個用於創建插頁式廣告的靜態方法,另一個用於更新偵聽器:

private static InterstitialAd interstitial; 

    public static void createIntertitialAd(Context myContext) { 
     if (interstitial == null) { 
      interstitial = new InterstitialAd(myContext, MY_INTERSTITIAL_UNIT_ID); 
      interstitial.loadAd(adRequest); 
      interstitial.setAdListener(myContext); 
     } 
    } 

    public static void updateAdListener(Context myContext) { 
     interstitial.setAdListener(myContext); 
    } 

然後在你的活動做以下

@Override 
    public void onCreate() { 
     HelperClass.createIntertitialAd(this); 
     HelperClass.updateAdListener(this); 
    } 
相關問題