单击菜单按钮后如何在启动新 activity 之前显示插页式广告?
How to show interstitial Ad before launching new activity after clicking a menu button?
我使用选项菜单按钮转到第二个 activity。当用户点击该菜单按钮时,插页式广告会在第二次启动后显示 activity。
但是我想在启动第二个 activity 之前显示插页式广告,当用户点击插页式广告的关闭按钮时,第二个 activity 应该启动。
我正在使用下面的代码来显示插页式广告。
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;
也许是这样的?使用onAdClosed
函数启动activity
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
@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));
}
这样一来,您也不必担心由于没有互联网连接或其他任何原因而无法加载广告。此代码将按照您描述问题的方式处理所有内容。
这段代码对我有用
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
finish();
这是最新的 SDK。
在应用启动时加载广告。
要在用户转到另一个 activity 之前展示广告,请使用此代码。如果您希望在点击次数后展示广告,您可以使用计数器。
像这样
在应用程序启动时加载广告
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));`
}
package com.androidx.sharebd.fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.androidx.sharebd.R;
import com.androidx.sharebd.activity.ConnectionManagerActivity;
import com.androidx.sharebd.activity.ContentSharingActivity;
import com.androidx.sharebd.model.TitleSupport;
import com.genonbeta.android.framework.ui.callback.SnackbarSupport;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
public class HomeFragment
extends com.genonbeta.android.framework.app.Fragment
implements TitleSupport,
SnackbarSupport,
com.genonbeta.android.framework.app.FragmentImpl {
@Nullable@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_home, container, false);
Button actionReceive = (Button) view.findViewById(R.id.receive);
actionReceive.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View view) {
/// Interstitial ads Start
InterstitialAd mInterstitial = new InterstitialAd(getActivity());
mInterstitial.setAdUnitId(getString(R.string.interstitial_ad_unit));
mInterstitial.loadAd(new AdRequest.Builder().build());
mInterstitial.setAdListener(new AdListener() {@Override
public void onAdLoaded() {
// TODO Auto-generated method stub
super.onAdLoaded();
if (mInterstitial.isLoaded()) {
mInterstitial.show();
}
}
@Override
public void onAdClosed() {
/// Your main code start ( where you want to go )
startActivity(new Intent(getContext(), ConnectionManagerActivity.class).putExtra(ConnectionManagerActivity.EXTRA_ACTIVITY_SUBTITLE, getString(R.string.text_receive)).putExtra(ConnectionManagerActivity.EXTRA_REQUEST_TYPE, ConnectionManagerActivity.RequestType.MAKE_ACQUAINTANCE.toString()));
/// Your main code end ( where you want to go )
Log.i("Ads", "onAdClosed");
}
@Override
public void onAdFailedToLoad(int errorCode) {
/// Your main code start ( where you want to go )
startActivity(new Intent(getContext(), ConnectionManagerActivity.class).putExtra(ConnectionManagerActivity.EXTRA_ACTIVITY_SUBTITLE, getString(R.string.text_receive)).putExtra(ConnectionManagerActivity.EXTRA_REQUEST_TYPE, ConnectionManagerActivity.RequestType.MAKE_ACQUAINTANCE.toString()));
/// Your main code end ( where you want to go )
Log.i("Ads", "onAdFailedToLoad");
}
});
/// Interstitial ads end
}
});
Button actionSend = (Button) view.findViewById(R.id.send);
actionSend.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View view) {
/// Interstitial ads Start
InterstitialAd mInterstitial = new InterstitialAd(getActivity());
mInterstitial.setAdUnitId(getString(R.string.interstitial_ad_unit));
mInterstitial.loadAd(new AdRequest.Builder().build());
mInterstitial.setAdListener(new AdListener() {@Override
public void onAdLoaded() {
// TODO Auto-generated method stub
super.onAdLoaded();
if (mInterstitial.isLoaded()) {
mInterstitial.show();
}
}
@Override
public void onAdClosed() {
/// Your main code start ( where you want to go )
startActivity(new Intent(getContext(), ContentSharingActivity.class));
/// Your main code End ( where you want to go )
Log.i("Ads", "onAdClosed");
}
@Override
public void onAdFailedToLoad(int errorCode) {
startActivity(new Intent(getContext(), ContentSharingActivity.class));
Log.i("Ads", "onAdFailedToLoad");
}
});
/// Interstitial ads End
}
});
return view;
}
@Override
public CharSequence getTitle(Context context) {
return context.getString(R.string.text_home);
}
}
我使用选项菜单按钮转到第二个 activity。当用户点击该菜单按钮时,插页式广告会在第二次启动后显示 activity。 但是我想在启动第二个 activity 之前显示插页式广告,当用户点击插页式广告的关闭按钮时,第二个 activity 应该启动。
我正在使用下面的代码来显示插页式广告。
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;
也许是这样的?使用onAdClosed
函数启动activity
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
@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));
}
这样一来,您也不必担心由于没有互联网连接或其他任何原因而无法加载广告。此代码将按照您描述问题的方式处理所有内容。
这段代码对我有用
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
finish();
这是最新的 SDK。
在应用启动时加载广告。
要在用户转到另一个 activity 之前展示广告,请使用此代码。如果您希望在点击次数后展示广告,您可以使用计数器。
像这样
在应用程序启动时加载广告
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));`
}
package com.androidx.sharebd.fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.androidx.sharebd.R;
import com.androidx.sharebd.activity.ConnectionManagerActivity;
import com.androidx.sharebd.activity.ContentSharingActivity;
import com.androidx.sharebd.model.TitleSupport;
import com.genonbeta.android.framework.ui.callback.SnackbarSupport;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
public class HomeFragment
extends com.genonbeta.android.framework.app.Fragment
implements TitleSupport,
SnackbarSupport,
com.genonbeta.android.framework.app.FragmentImpl {
@Nullable@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_home, container, false);
Button actionReceive = (Button) view.findViewById(R.id.receive);
actionReceive.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View view) {
/// Interstitial ads Start
InterstitialAd mInterstitial = new InterstitialAd(getActivity());
mInterstitial.setAdUnitId(getString(R.string.interstitial_ad_unit));
mInterstitial.loadAd(new AdRequest.Builder().build());
mInterstitial.setAdListener(new AdListener() {@Override
public void onAdLoaded() {
// TODO Auto-generated method stub
super.onAdLoaded();
if (mInterstitial.isLoaded()) {
mInterstitial.show();
}
}
@Override
public void onAdClosed() {
/// Your main code start ( where you want to go )
startActivity(new Intent(getContext(), ConnectionManagerActivity.class).putExtra(ConnectionManagerActivity.EXTRA_ACTIVITY_SUBTITLE, getString(R.string.text_receive)).putExtra(ConnectionManagerActivity.EXTRA_REQUEST_TYPE, ConnectionManagerActivity.RequestType.MAKE_ACQUAINTANCE.toString()));
/// Your main code end ( where you want to go )
Log.i("Ads", "onAdClosed");
}
@Override
public void onAdFailedToLoad(int errorCode) {
/// Your main code start ( where you want to go )
startActivity(new Intent(getContext(), ConnectionManagerActivity.class).putExtra(ConnectionManagerActivity.EXTRA_ACTIVITY_SUBTITLE, getString(R.string.text_receive)).putExtra(ConnectionManagerActivity.EXTRA_REQUEST_TYPE, ConnectionManagerActivity.RequestType.MAKE_ACQUAINTANCE.toString()));
/// Your main code end ( where you want to go )
Log.i("Ads", "onAdFailedToLoad");
}
});
/// Interstitial ads end
}
});
Button actionSend = (Button) view.findViewById(R.id.send);
actionSend.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View view) {
/// Interstitial ads Start
InterstitialAd mInterstitial = new InterstitialAd(getActivity());
mInterstitial.setAdUnitId(getString(R.string.interstitial_ad_unit));
mInterstitial.loadAd(new AdRequest.Builder().build());
mInterstitial.setAdListener(new AdListener() {@Override
public void onAdLoaded() {
// TODO Auto-generated method stub
super.onAdLoaded();
if (mInterstitial.isLoaded()) {
mInterstitial.show();
}
}
@Override
public void onAdClosed() {
/// Your main code start ( where you want to go )
startActivity(new Intent(getContext(), ContentSharingActivity.class));
/// Your main code End ( where you want to go )
Log.i("Ads", "onAdClosed");
}
@Override
public void onAdFailedToLoad(int errorCode) {
startActivity(new Intent(getContext(), ContentSharingActivity.class));
Log.i("Ads", "onAdFailedToLoad");
}
});
/// Interstitial ads End
}
});
return view;
}
@Override
public CharSequence getTitle(Context context) {
return context.getString(R.string.text_home);
}
}