如何在libgdx中禁用admob

时间:2014-03-09 13:54:33

标签: android libgdx admob

我在我的libgdx项目中添加了admob而没有任何问题但是如何在游戏中禁用admob。我有2个屏幕(MainMenu和PlayScreen),我希望广告只在MainMenu上显示。

我发现了一篇关于在libgdx中控制广告的文章,但问题是本文适用于桌面而不是Android。

https://code.google.com/p/libgdx/wiki/AdMobInLibgdx (注意:问题部分来自于使用已弃用的文档,https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx提供的更新版本)

1 个答案:

答案 0 :(得分:1)

看看#control at the new wiki Android项目中包含2个最终静态值:

public class HelloWorldAndroid extends AndroidApplication {

private final int SHOW_ADS = 1;
private final int HIDE_ADS = 0;

protected Handler handler = new Handler()
{
    @Override
    public void handleMessage(Message msg) {
        switch(msg.what) {
            case SHOW_ADS:
            {
                adView.setVisibility(View.VISIBLE); //change to visible
                break;
            }
            case HIDE_ADS:
            {
                adView.setVisibility(View.GONE);//change to not visible
                // you should also disable the ad fetching here!
                break;
            }
        }
    }
};

所以如果你调用方法:(它被解析为核心项目的接口)

public interface IActivityRequestHandler {
   public void showAds(boolean show);
}

public class HelloWorldAndroid extends AndroidApplication implements IActivityRequestHandler  {

...

    // This is the callback that posts a message for the handler
    @Override
    public void showAds(boolean show) {
       handler.sendEmptyMessage(show ? SHOW_ADS : HIDE_ADS);
    }

它向处理程序发送一条消息,激活或禁用该admob。 showAds的接口被传递给核心项目,因此您可以保留对它的引用并使用它。要查看其工作原理,请查看接口文章plattformspec code

只是为了表明这一点:

View gameView = initializeForView(new HelloWorld(this), false); // and "this" is the mainclass of the android project which implements the IActivityRequestHandler interface shown above
//the HelloWorld(this) is the core project where you now can save the `IActivityRequestHandler` as referance and call the showAds(bool)

但最后如果你已经阅读了这篇论文,你应该知道这一切。