我使用选项菜单按钮转到第二个活动。当用户在启动第二个活动后单击该菜单按钮插页式广告时。 但我想在启动第二个活动之前显示插页式广告,当用户点击插页式广告的关闭按钮时,应启动第二个活动。
我使用以下代码显示插页式广告。
case R.id.button_id:
startActivity(new Intent(this, secondactivity.class ));
interstitial = new InterstitialAd(getApplicationContext());
interstitial.setAdUnitId(getString(R.string.admob_interstetial_ad));
AdRequest adRequest9 = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
interstitial.loadAd(adRequest9);
interstitial.setAdListener(new AdListener() {
public void onAdLoaded() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
});
return true;
答案 0 :(得分:12)
@ user8240773建议的答案是正确的,但有一种更有效的方法来处理您的问题。这是我的代码:
// Has the interstitial loaded successfully?
// If it has loaded, perform these actions
if(mInterstitialAd.isLoaded()) {
// Step 1: Display the interstitial
mInterstitialAd.show();
// Step 2: Attach an AdListener
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
// Step 2.1: Load another ad
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_EMULATOR_ID)
.build();
mInterstitialAd.loadAd(adRequest);
// Step 2.2: Start the new activity
startActivity(new Intent(Activity1.this, Activity2.class));
}
});
}
// If it has not loaded due to any reason simply load the next activity
else {
startActivity(new Intent(Activity1.this, Activity2.class));
}
这样,由于没有互联网连接或其他任何原因,您也不必担心广告未加载。所有内容都将由您描述问题的方式处理。
答案 1 :(得分:1)
也许这样的事情?使用onAdClosed
功能启动活动
interstitial.setAdListener(new AdListener() {
public void onAdLoaded() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
@Override
public void onAdClosed() {
startActivity(new Intent(this, secondactivity.class ));
// Code to be executed when when the interstitial ad is closed.
Log.i("Ads", "onAdClosed");
}
});
在这里阅读更多相关信息: https://developers.google.com/admob/android/interstitial
答案 2 :(得分:0)
此代码适用于我
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
finish();
答案 3 :(得分:0)
这是最新的 SDK。
在应用启动时加载广告。
要在用户转到其他活动之前展示广告,请使用此代码。如果您希望在点击次数后展示广告,您可以使用计数器。
像这样
在应用启动时加载广告
public InterstitialAd mInterstitialAd;
private int counter = 0;
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(this, AD_UNIT_ID, adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
super.onAdLoaded(interstitialAd);
mInterstitialAd = interstitialAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error
mInterstitialAd = null;
}
});
用这个来展示
case R.id.button_id:
if (counter == 1) {
if (mInterstitialAd != null) {
mInterstitialAd.show(MainActivity.this);
mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
@Override
public void onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
startActivity(new Intent(Activity1.this, Activity2.class));
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when fullscreen content failed to show.
Log.d("TAG", "The ad failed to show.");
}
});
} else {
//load add again as above and visit second activity
`startActivity(new Intent(Activity1.this, Activity2.class));`
counter=0;
}
} else {
startActivity(new Intent(Activity1.this, Activity2.class));`
}