2014-10-04 61 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