当前位置: 首页 > 知识库问答 >
问题:

我如何在活动中加载插页广告,并在另一个活动中显示?

燕建中
2023-03-14

我想在活动中加载插页广告并在另一个活动中显示它。我找到了这个主题,并尝试执行第一个答案中的步骤,但有很多错误。

如何使用intent预加载admob中间广告并发送到另一个android活动

我所做的:

>

`package com.website.test;
import com.google.android.gms.ads.InterstitialAd;

公共类AdManager{

//静态字段在所有实例之间共享。 静态插图广告;

公共AdManager(){ CreateAd(); }

公共无效createAd(){ //创建广告。 InterstitialAd=new InterstitialAd(this); InterstitialAd.setAdUnitId(");

在创建A类事件时,我将其放在:

AdManager AdManager=new AdManager();adManager。createAd()

  • 在我想展示中间广告的活动的创建活动中,我写下:

interstitalad ad=admanager。getAd();if(ad.isLoaded){ad.show();}

但是,正如我所附的图片所示,有一些错误,请告诉我出了什么问题?

屏幕截图1

截图


共有2个答案

韦泳
2023-03-14

不要这样做,您几乎肯定会泄漏内存,最终导致应用程序崩溃。

图像中的错误是基本的Java语法问题。

图片1

  1. interstialAd变量未声明
  2. AdRequest尚未导入
  3. AD_UNIT_ID尚未申报

图像2

  1. adManager尚未声明。
澹台庆
2023-03-14
class AdManager {
// Static fields are shared between all instances.
private static InterstitialAd interstitialAd;

private static boolean isInterAdsShowed = false;
private Activity activity;
private String AD_UNIT_ID;

AdManager(Activity activity, String AD_UNIT_ID) {

    this.activity = activity;
    this.AD_UNIT_ID = AD_UNIT_ID;
    createAd();
}

void createAd() {
    // Create an ad.
    interstitialAd = new InterstitialAd(activity);
    interstitialAd.setAdUnitId(AD_UNIT_ID);

    AdRequest adRequest = new AdRequest.Builder()
            //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            //.addTestDevice(TEST_DEVICE_ID)
            .build();

    // Load the interstitial ad.
    interstitialAd.loadAd(adRequest);
}

static InterstitialAd getAd() {
    if(interstitialAd != null && interstitialAd.isLoaded() && !isInterAdsShowed) {
        isInterAdsShowed = true;
        return interstitialAd;
    }
    else return null;
}

}

..... 活动A

  AdManager adManager = new AdManager(this,"your ads id");
    adManager.createAd();

......活动B

 InterstitialAd ad = AdManager.getAd();
    if (ad != null) {
        ad.show();
    }
 类似资料: