我正在研究Android的数学类型游戏。但我想创建一个非页内广告。谷歌有一个如何创建一个但它有一个按钮来创建广告的例子。我希望我的广告只是在活动开始时启动,用户只需将其关闭即可。
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.Random;
import android.content.Intent;
import java.util.concurrent.TimeUnit;
import android.os.CountDownTimer;
import com.google.android.gms.ads.*;
public class activity_2 extends MainActivity implements DialogInterface.OnClickListener{
int getWrong=0, num, sum = 0, score = 0, three, four;
Random rand = new Random();
int one = rand.nextInt(10) + 1;
int two = rand.nextInt(10) + 1;
int solution = one + two;
String myString = String.format("%d + %d =", one, two);
InterstitialAd mInterstitialAd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
// beginPlayingGame(); * the google sample had a this class which i dont want to work with
}
});
TextView text = (TextView) findViewById(R.id.Question);
text.setText("" + myString);
TextView timeSTART = (TextView) findViewById(R.id.TimmerT);
timeSTART.setText("10");
requestNewInterstitial();
}
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
.build();
mInterstitialAd.loadAd(adRequest);
}
答案 0 :(得分:1)
您无法在不加载的情况下显示添加内容......!
为什么你没有为此目的使用Singleton
?
您应该按照以下步骤操作:
首先,在Application(而不是Activity)类中创建一个公共静态InterstitialAd
对象..!
然后,您需要在应用程序的mInterstitialAd
方法中初始化您的onCreate
对象,而不是在活动的基础上创建....
之后,从您的Activity类中调用mInterstitialAd对象的show方法......!
此程序允许您在应用中的任意位置调用show Google Add ...!
您的Application类应如下所示,
public class DefaultApplication extends Application {
public static InterstitialAd mInterstitialAd;
@Override
public void onCreate() {
super.onCreate();
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
// beginPlayingGame(); * the google sample had a this class which i dont want to work with
}
});
}
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
.build();
mInterstitialAd.loadAd(adRequest);
}
}
要加载“从活动添加”,请执行以下操作,
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
DefaultApplication.mInterstitialAd.show();
}
答案 1 :(得分:1)
首先,您必须初始化MobileAds SDK。
因此,请转到您的应用程序并执行缺少的操作:
MobileAds.initialize(context, getString(R.string.banner_ad_unit_id));
在此之后,只需转到您的活动并展示您的插页式广告:
if (interstitialAd != null && interstitialAd.isLoaded()) {
interstitialAd.show();
}
答案 2 :(得分:0)
Admob示例使用一个按钮,您可以随时使用该概念,同时也可以显示您需要一个特定的事件来展示广告。
您需要在应用中找到可以展示广告的特定点,例如游戏/关卡之间。
在应用启动时显示广告会中断用户流程,提供糟糕的用户体验并违反Admob政策,并可能会禁止您的帐户。