我想知道如何缓冲或准备Admob广告。当前代码基本上是创建和销毁,但创建过程是造成延迟的原因。
我尝试评论销毁过程,因此它只创建一次。
我可以使用//adView.setVisibility(View.GONE);广告消失了,但让它们恢复原状并不起作用。
public void showAds() {
if (adView == null) {
final FrameLayout root = (FrameLayout) findViewById(R.id.realRoot);
root.post(new Runnable() {
public void run() {
Log.i("TIM", "showAds().");
reallyShowAds(root);
}
});
}
// Log.d("TIM", "showAds() done.");
}
private void reallyShowAds(final FrameLayout root)
{
if (adView == null)
{
adView = new AdView(SDLActivity.this);
adView.setVisibility(View.VISIBLE);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111"); // test ad code
AdRequest adRequest = new AdRequest.Builder().build();
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
50,
Gravity.TOP | Gravity.CENTER);
adView.setLayoutParams(lp);
root.addView(adView, lp);
adView.loadAd(adRequest);
}
}
public void hideAds()
{
// Log.d("TIM", "hideAds() called.");
if (adView != null)
{
//adView.pause();
final FrameLayout root = (FrameLayout) findViewById(R.id.realRoot);
root.post(new Runnable()
{
public void run()
{
Log.i("TIM", "hideAds().");
reallyHideAds();
}
}); // });
}
// Log.d("TIM", "hideAds() done.");
}
private void reallyHideAds()
{
if (adView != null)
{
//adView.setVisibility(View.GONE);
//adView.setVisibility(View.INVISIBLE);
adView.destroy();
adView = null;
}
}