我想在我的Android应用中显示全屏横幅.
在onCreate我称之为这个功能:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
showInterstitial();
}
Run Code Online (Sandbox Code Playgroud)
我的功能:
private void showInterstitial() {
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(getString(R.string.ad_banner_id));
interstitialAd.show();
Toast.makeText(this, "Ad will load", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序将崩溃此消息:
引起:java.lang.IllegalStateException:必须在调用show之前在InterstitialAd上设置广告单元ID.
但是我在节目之前设置了广告ID,不是吗?
您没有要求loadAd()使用interstitialAd.插页广告应在您展示广告之前加载.
interstitialAd.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)
你也应该在打电话之前检查它是否已加载show().它可能无法立即使用,您可能希望在调用show之前提前加载它.
if(mInterstitial.isLoaded()){
mInterstitial.show();
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitial.loadAd(adRequest); //optionally load again if you plan to show another one
}
Run Code Online (Sandbox Code Playgroud)
可能的实施(改变它以满足您的要求)
所以基本上可以进入以下内容 onCreate()
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(getString(R.string.ad_banner_id));
AdRequest adRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest);
Toast.makeText(this, "Ad will load", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
并showInterstitial()成为这个
private void showInterstitial() {
if(mInterstitial.isLoaded()){
mInterstitial.show();
//optionally load again if you plan to show another one later
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitial.loadAd(adRequest);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:showInterstitial()如果要显示插页式广告,请致电.但是,在打电话后不是立即loadAd().如果网络延迟或广告内容比正常情况重,则需要花费一些时间才能加载一个内部广告,您可能会在几分之一秒内错过.
此外,这里是正确实施Admob Intersitials的文档.
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |