Admob Add在延迟时间中显示

时间:2014-10-29 19:00:17

标签: android admob

公共类MainActivity扩展了Activity {

AdView adView;
InterstitialAd interstitialAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    adView = (AdView) findViewById(R.id.adView);
    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId("ca-app-pub-3500425325579414/2869090680");
    AdRequest adRequest = new AdRequest.Builder().addTestDevice(
            "BD9386F17F7DE795B86B5BBBEDDF1095").build();

    adView.loadAd(adRequest);
    interstitialAd.loadAd(adRequest);

    interstitialAd.setAdListener(new AdListener() {
        public void onAdLoaded() {
            if (interstitialAd.isLoaded()) {
                interstitialAd.show();
            }
        }
    });

    Thread timerThread = new Thread() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
            super.run();

            try {
                sleep(5000);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            } finally {
                ?????????????????????
            }

        }
    };
    timerThread.start();

}

}

我想在我选择的时间后显示我的Admob添加内容。 我想使用一个线程来显示我在dealy中的添加。 但是我如何完成这个我无法做到这一点。 即使我试过这个

    Thread timerThread = new Thread() {

        @Override
        public void run() {
            // TODO Auto-generated method stub
            super.run();

            try {
                sleep(5000);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            } finally {
                interstitialAd.setAdListener(new AdListener() {
                    public void onAdLoaded() {
                        if (interstitialAd.isLoaded()) {
                            interstitialAd.show();
                        }
                    }
                });
            }

        }
    };
    timerThread.start();

但这不起作用。 我如何以编程方式完成它。

2 个答案:

答案 0 :(得分:2)

我看到的问题是,您在延迟后设置 Adlistener而不是在延迟后显示广告。 此外,您不需要创建线程来执行此操作,例如:

interstitialAd.setAdListener(new AdListener() {
    public void onAdLoaded() {
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() { 
            public void run() { 
                MainActivity.this.interstitialAd.show();
            } 
        }, 5000);
    }
});

将它放在你的MainActivity onCreate方法中,摆脱timerThread。这样,您就可以配置插页式广告,以便在广告加载后显示5秒

注意:从用户用户体验的角度来看这样一个好主意,因为您最有可能最终会惹恼您的用户。最佳做法是在自然休息时间展示广告,例如"已完成等级"等

答案 1 :(得分:1)

DON' 想要在您的应用中随机(延迟或不延迟)时间显示插页式广告。除非

  1. 您希望用户评分非常糟糕
  2. 您希望Admob停用您的帐户。
  3. 相反,您应该在应用中选择合适的断点并显示广告。