2014-10-04 59 views
0

我試圖在用戶按下主要活動中的按鈕時在應用結束時顯示admob插頁式廣告。顯示廣告,但該廣告不可點擊。我的代碼是Admob插頁式廣告在Android應用出口中不可點擊

我把在活動的onCreate裝載部分:

 interstitial = new InterstitialAd(getApplicationContext()); 
     interstitial.setAdUnitId("Ad UNIT ID"); 

     // Create ad request. 
     AdRequest adRequest = new AdRequest.Builder() 
       .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build(); 

     // Begin loading your interstitial. 
     interstitial.loadAd(adRequest); 

和OnBackPressed:

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     displayInterstitial(); 
    } 

    protected void displayInterstitial() { 
    Log.d(TAG, "start displayInterstitial()"); 
    if (null != interstitial && interstitial.isLoaded()) { 
     Log.d(TAG, "displayInterstitial() loaded"); 
     interstitial.show(); 
    } 
    Log.d(TAG, "end displayInterstitial()"); 
} 

任何人都可以請幫我解決這個問題?

+0

問題可能是你以前'displayInterstitial()'調用'super.onBackPressed'。嘗試實施AdListener,然後從onAdClosed調用super.onBackPressed。或者實際上只是在displayInterstitial可能工作後調用super.onBackPressed,請嘗試一下。 – donfuxx 2014-10-04 16:35:58

+0

displayInterstitial()沒有幫助後調用super.onBackPressed。我不能在adlistener的onAdClosed方法中調用super.onBackPressed,因爲它與onBackPressed超類方法相關聯。 – venkat 2014-10-05 10:36:47

+0

在AdListener中這樣做:'MainActivity.super.onBackPressed();' – donfuxx 2014-10-05 11:18:58

回答

0

簡單的方法是:

 interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdClosed() { 
       finish(); 
      } 
     }); 

然而,在我看來,這是更好地留在您的應用程序完成之前一秒鐘。這樣更清楚,這個廣告還是你的應用程序的一部分:

 interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdClosed() { 
       Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        public void run() { 
         finish(); 
        } 
       }, 1000); 
      } 
     }); 

BTW:有關調用MainActivity.super.onBackPressed();的AdListener的的onAdClosed裏面的評論:我測試了它,扔一個IllegalStateException。我想這是因爲onBackPressed被調用的時刻已經太晚了。但無論如何它是不需要的,所以忘了它。超級onBackPressed方法本身是從AdListener的,雖然訪問,將編譯就好;-)

+0

嗨,Donfux,感謝您花時間。我仍然無法得到它fixed.Click仍然無法正常工作。您有沒有在出口實施admob插頁式廣告的示例項目?如果是這樣,請寄給我[email protected]。我會檢查試圖找到我的問題。 – venkat 2014-10-09 18:35:49

+0

嘗試在onAdClosed中添加一條日誌語句以查看它是否被調用。 – donfuxx 2014-10-10 17:34:40

+0

onAdClosed被調用。 – venkat 2014-10-10 19:07:54

0
@Override 
public void onBackPressed() { 
    Log.d(TAG, "onBackPressed Called"); 

    displayInterstitial(); 
    //finish(); 
    super.onBackPressed(); 
} 
+0

我試過了,但還是沒有運氣。 – venkat 2014-10-10 19:08:58