如何在整个应用程序会话中在 activity 中仅显示一次插页式广告
How to show interstitial Ad only once in an activity throughout App session
(我的问题是当我回到原来的状态时 activity 我不想再显示一个惰性广告 Ad.I 只想在整个应用程序会话中显示一次插页式广告。)目前我正在使用google 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.");
}
}
});
你好实际上我有一个补丁可以做到这一点,我们将为此使用共享首选项,
您要做的第一件事是在加载广告之前检查共享首选项是否已经加载过一次广告?如果没有,则仅 load/show 广告并将标志设置为 true。
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean("isAdsLoaded", true);
editor.commit();
- 好的,现在只要这个 activity 打开它就不会再次加载广告,而是在应用程序被杀死并再次打开时再次加载它,我们应该必须重置标志。
要重置标志,在应用程序 class 中,我们会将此标志设置为 false
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean("isAdsLoaded", false);
editor.commit();
这里的应用程序class是class每次打开都会调用apps.I希望你知道如何创建它并在清单中提及file.and如果你不要评论我会简单的解释一下。
只保留一个静态布尔变量。加载应用程序后,请确保将布尔变量设置为 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.");
}
}
});
(我的问题是当我回到原来的状态时 activity 我不想再显示一个惰性广告 Ad.I 只想在整个应用程序会话中显示一次插页式广告。)目前我正在使用google 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.");
}
}
});
你好实际上我有一个补丁可以做到这一点,我们将为此使用共享首选项,
您要做的第一件事是在加载广告之前检查共享首选项是否已经加载过一次广告?如果没有,则仅 load/show 广告并将标志设置为 true。
SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putBoolean("isAdsLoaded", true); editor.commit();
- 好的,现在只要这个 activity 打开它就不会再次加载广告,而是在应用程序被杀死并再次打开时再次加载它,我们应该必须重置标志。
要重置标志,在应用程序 class 中,我们会将此标志设置为 false
SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putBoolean("isAdsLoaded", false); editor.commit();
这里的应用程序class是class每次打开都会调用apps.I希望你知道如何创建它并在清单中提及file.and如果你不要评论我会简单的解释一下。
只保留一个静态布尔变量。加载应用程序后,请确保将布尔变量设置为 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.");
}
}
});