【问题标题】:Interstitial Ad with setContentView带 setContentView 的插页式广告
【发布时间】:2015-09-27 17:53:15
【问题描述】:

我正在尝试向使用 setContentView 的应用添加插页式广告。我已经实现了一个“监听器”,可以在需要广告时正确调用。您可以通过调用此函数“Listener”{...} 来缩写您的答案,并假设只要应用程序发出广告信号,括号内的所有内容都会发生。下面的答案有一个很好的横幅广告方法。

Implementing Admob banner when setContentView() is used for the Surfaceview

我的问题是,在这种情况下,我应该如何实现插页式广告?

我的代码基本上是链接中的答案,加上这个:

...    
        setContentView(layout);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        listener= new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent event) {
                if (event.getPropertyName()=="sharing1") {
                    caring();
                    game.dead=false;
                    game.sharing1=false;
                }
                if(event.getPropertyName()=="dead")
                {
                //Make an interstitial ad here
                }
            }
        };

【问题讨论】:

    标签: android admob interstitial setcontentview


    【解决方案1】:

    不确定您在问什么,但与横幅广告不同,插页式广告是一个弹出窗口,独立于基础活动的内容视图显示。

    您可以在调用#setContentView() 后调用您的函数。也许您应该发布一些代码,以便我们知道您面临的具体问题

    更新: 您可以仅在需要时预加载并显示它,在这种情况下,当玩家“死亡”时。这将减少延迟。每次显示广告后,您必须重新加载广告,以便在后续调用时显示。此外,如果您的侦听器将在非 UI 线程中调用,请使用处理程序。这是一个解决方案:

    ...   
    
    
    
      InterstitialAd interstitial; 
            setContentView(layout);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
            InterstitialAd interstitial = new InterstitialAd(this);
            interstitial.setAdUnitId("your-ad-unit");
            AdRequest adRequest = new AdRequest.Builder().build();
            // Preload your interstitial to avoid load time delays 
            interstitial.loadAd(adRequest);
            listener= new PropertyChangeListener() {
                @Override
                public void propertyChange(PropertyChangeEvent event) {
                    if (event.getPropertyName()=="sharing1") {
                        caring();
                        game.dead=false;
                        game.sharing1=false;
                    }
                    if(event.getPropertyName()=="dead")
                    {
                    //Make an interstitial ad here
            runOnUiThread(new Runnable() {
            @Override
            public void run() {
            if (interstitial != null && interstitial.isLoaded()){
                 interstitial.show();
                 //reload ad 
                 interstitial.loadAd(new AdRequest.Builder().build());             
                 }  
            }
        });
                    }
                }
            };
    

    【讨论】:

    • 代码本质上就是链接的。唯一的区别是我有一个可以多次调用广告的“听众”。
    • @ArriFerrari 好的。我修改了我的答案。希望对你有帮助
    • 好吧,我遇到的问题是使用 setContentView();我似乎屏蔽了广告。
    • 屏蔽广告?你的意思是没有广告展示?在游戏运行时检查发布到堆栈跟踪日志的消息。也许这会有所帮助
    • 不管什么原因,它在模拟器中不起作用,但我创建了一个 apk 并且它起作用了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多