ali*_*bas 5 android interstitial admob android-intent
我需要一些有关AdMob插页式广告的帮助.
我想在一个活动中预加载插页式广告.这是直截了当的.
// Create an ad.
interstitialAd = new InterstitialAd(this);
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);
Run Code Online (Sandbox Code Playgroud)
现在,我想使用intent将插页式广告发送到另一个活动.我不知道如何使用它
intent.putExtra("myAd", interstitialAd);
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Tim*_*Tim 15
插页式广告并不意味着或构建为使用意图的附加内容传递.
它更好
第二种情况的例子(半伪代码):
public class AdManager {
// Static fields are shared between all instances.
static InterstitialAd ad;
private Context ctx;
public AdManager(Context ctx) {
this.ctx = ctx;
createAd();
}
public void createAd() {
// Create an ad.
ad = new InterstitialAd(ctx);
ad.setAdUnitId(AD_UNIT_ID);
final AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(TEST_DEVICE_ID).build();
// Load the interstitial ad.
ad.loadAd(adRequest);
}
public InterstitialAd getAd() {
return ad;
}
}
Run Code Online (Sandbox Code Playgroud)
运用
活动A.
AdManager adManager = new AdManager();
adManager.createAd();
Run Code Online (Sandbox Code Playgroud)
活动B.
AdManager adManager = new AdManager();
InterstitialAd ad = adManager.getAd();
if (ad.isLoaded()) {
ad.show();
}
Run Code Online (Sandbox Code Playgroud)
通过使用单例设计模式解决了此问题。
/**
* Created by Kirk on 10/26/2017.
*/
public class AdManager {
private static AdManager singleton;
public AdManager() {
}
/***
* returns an instance of this class. if singleton is null create an instance
* else return the current instance
* @return
*/
public static AdManager getInstance() {
if (singleton == null) {
singleton = new AdManager();
}
return singleton;
}
/***
* Create an interstitial ad
* @param context
*/
public static void createAd(Context context) {
interstitialAd = new InterstitialAd(context);
interstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
interstitialAd.loadAd(new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build());
}
/***
* get an interstitial Ad
* @return
*/
public static InterstitialAd getAd() {
return interstitialAd;
}
Run Code Online (Sandbox Code Playgroud)
}
在activityA中创建一个加载广告
AdManager adManager = AdManager.getInstance();
adManager.createAd(MainActivity.this);
Run Code Online (Sandbox Code Playgroud)
在活动B中搜索并通过以下方式展示广告
AdManager adManager = AdManager.getInstance();
InterstitialAd ad = adManager.getAd();
if (ad.isLoaded()) {
ad.show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8661 次 |
| 最近记录: |