android - 显示和隐藏 AdMob 横幅以获得更好的性能?

标签 android admob

我正在编写我自己的 android 应用程序。 在此应用程序中,我对所有 2D 图形使用 OpenGL。 我想实现 AdmMob 横幅广告来赚一些钱(希望如此;))。每次玩家在骰子屏幕中死亡时都会显示横幅,但在玩家玩游戏时不会显示。

问题是:当我集成测试广告时,应用程序开始滞后,并且需要 再花几秒钟加载模具屏幕。

要加载和隐藏横幅,我使用以下两种方法:(来自: The Google Developer site )

    private void showBanner() {
        mAdView.setVisibility(View.VISIBLE);
        mAdView.loadAd(adRequest);
    }
    private void hideBanner() {
        mAdView.setVisibility(View.GONE);
    }

我的问题是:有谁知道我是否可以在开始时加载横幅一次:

mAdView.loadAd(adRequest)

并且仅显示和隐藏横幅:

    private void showBanner() {
        mAdView.setVisibility(View.VISIBLE);
    }
    private void hideBanner() {
        mAdView.setVisibility(View.GONE);
    }

??????

或者是否违反实现指南?

PS:此方法会更快,因为它不必在每次玩家死亡时加载新广告。

最佳答案

我用来暂停/恢复 adView。因此,我将按如下方式更新您的代码:

private void showBanner() {
    mAdView.resume();
    mAdView.setVisibility(View.VISIBLE);
}
private void hideBanner() {
    mAdView.pause();
    mAdView.setVisibility(View.GONE);
}

我已经在我的应用程序中使用了此代码(可在 GooglePlay 中找到),并且从未收到过因做错事情而发出的通知。所以我认为没有问题。

但是,

检查这个谷歌开发者网站,似乎根本不需要。所以,也许你的隐藏代码应该没问题……只需更新 showBanner 即可请求新的……

https://developers.google.com/admob/android/games

在游戏过程中,您会想要隐藏广告。这可以通过调用 hideBanner 方法来完成:

private void hideBanner() {
    adView.setVisibility(View.GONE);
}

游戏结束后,再次调用 showBanner 方法刷新广告并使其可见。

private void showBanner() {
  adView.setVisibility(View.VISIBLE);
  adView.loadAd(new AdRequest.Builder()
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build());
}

关于android - 显示和隐藏 AdMob 横幅以获得更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35241265/

相关文章:

android - 如何在没有任何引用的情况下关闭所有打开的警报对话框

android - 使用 Gradle 将 AndroidSlidingUpPanel 添加到 IntelliJ IDEA 项目

ios - 广告 SDK 在没有应用程序 ID 的情况下初始化

android - 从非 Activity 中拍照

java - 当我引用 ArrayList.add 方法时,Android 应用程序在启动时崩溃

android - Retrofit中如何使用Protobuf转换器

android - AdMob AdView 出现了,但我的布局的其余部分不见了 (Android)

objective-c - 将.app集成到另一个应用程序的UIViewcontroller中

android - Play 服务广告库 7.5.0 需要 WRITE_EXTERNAL_STORAGE 权限

android - 必须在调用 loadAd 之前设置广告尺寸和广告单元 ID