java - 如何在整个应用会话期间的活动中仅显示一次插页式广告
问题描述
(我的问题是当我回到相同的活动时,我不想再次显示非插页式广告。我只想在整个应用会话中显示插页式广告。)目前我正在使用谷歌 admob 提供的默认插页式广告代码。
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.interstitial_id));
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
else {
Log.d("TAG", "The interstitial wasn't loaded yet.");
}
}
});
解决方案
只需保留一个静态布尔变量。加载应用程序后,请确保将布尔变量设置为 false。加载广告后,您可以将其设置为 true。当您退出应用程序时,请确保将其设置回 false(因为应用程序进程可能不会在您退出应用程序后立即被破坏)
public static isAdLoadedOnce = false;
----------------------------------------------
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.interstitial_id));
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
if (!isAdLoadedOnce & mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
isAdloadedOnce = true;
}
else {
Log.d("TAG", "The interstitial wasn't loaded yet.");
}
}
});
推荐阅读
- java - 在recyclerview中单击一项以阅读详细信息时出现NullPointerException
- apache-kafka - 将数据从任何本地 linux 机器(无 kafka)发布到安装了 kafka 的远程机器
- bash - 在循环开始时仅打印一次 echo 命令
- php - 如何使用 ReactPHP 和 Ratchet 在同一端口上运行 WebSocket 和 HTTP Server?
- terraform - 使用 Terraform 从 AMI 获取附加卷 device_name
- javascript - 当用户点击 div 时导航到带有附加查询的新 url
- reactjs - React-admin TypeError: dynamicSheet.update(...) 未定义
- machine-learning - 在输出中添加噪声如何避免对训练点的过度拟合?
- reactjs - 加载资源失败:服务器响应状态为 401(未授权) - React js
- javascript - 反应钩子状态不更新