需要即时Admob广告而不是几秒钟等待

时间:2016-03-15 02:00:46

标签: android c++ admob sdl

我想知道如何缓冲或准备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;
    }

}

0 个答案:

没有答案