android - 取消/暂停/停止任何插页式广告

标签 android admob

我有一个 Android 应用程序,它使用 Google 的 admob 网络显示插页式广告。 admob 的好处是它的 Activity 独立。我可以在我的 MainActivity 中加载广告,只要 admob 准备好广告,它就会显示它,即使我不再在 MainActivity 中也是如此。我已经使用 isLoaded() 方法来展示广告,而且 90% 的时间已经按预期工作了。

但另外 10% 不是。有些 Activity 应该保持无广告状态,因为广告会降低游戏质量。如果手机速度慢或连接速度慢并且加载广告需要一段时间,则广告可能会在错误的 Activity 中弹出。

有什么我可以调用的东西,它会关闭加载的广告并停止加载尚未显示的广告吗?这只会对两个 Activity 生效,而其他 Activity 将保持原样。

所以在我的主要 Activity 中我调用:

Ads.loadAdMobInterstitial(MainActivity.this);

这是我处理广告的类(class):

public class Ads {

    public static InterstitialAd loadAdMobInterstitial(final Context context) {

            int admobUnitId = string.admob_ad_unit_id; 

            final InterstitialAd iAd = new InterstitialAd(context);
            iAd.setAdUnitId(context.getString(admobUnitId));

            iAd.setAdListener(new AdListener() {
                @Override
                public void onAdLoaded() {
                        iAd.show();
                }

            });     

            AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .build();

            iAd.loadAd(adRequest);

            return iAd;
        }
}

最佳答案

好的,首先,您应该永远onAdLoaded() 调用interstitialAd.show()。正如您所指出的那样,它会导致糟糕的用户体验。您的 Admob 帐户也可能会被禁止。

我怀疑您真正想要做的是将现有的 Activity 重构为 fragment ,并将它们全部托管在您的 MainActivity 中。这样您就可以控制打开/关闭插页式广告。

并确保您是从应用中的自然断点而不是从 onAdLoaded() 开始显示插页式广告。

关于android - 取消/暂停/停止任何插页式广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844979/

相关文章:

android - 在android中上传文件以及其他字符串参数

android - 2013 年 1 月 - Admob 和 AdWhirl?

ios - 不应在主线程上调用该方法,因为这可能会导致 UI 无响应

android - 为什么 AdMob 广告频次上限不起作用?

android - Admob 插页式 loadEd 功能太慢

java - Android - 如何生成 GreenDao 实体

android - 使用 Espresso 在数据之前显示测试加载程序

android - 带有 fragment 的 SearchView

android - 如何更改Android模拟器的默认语言?

android - 如何禁用奖励视频显示/播放的后退按钮?