安卓 AdMob : addView doesn't show ad until return to activity

标签 android admob overlay surfaceview android-relativelayout

我正在尝试将横幅广告添加到我的游戏顶部。我的 Activity 使用带有自定义 SurfaceView 的 RelativeLayout。我希望广告与 SurfaceView 重叠。

广告加载并可点击,但未绘制到屏幕上。当我离开 Activity 并返回时,会绘制广告(例如,按下主页按钮,然后通过最近菜单返回到应用)。

这不是等待广告加载的问题,因为 1) 如果我等待,广告不会显示,以及 2) 广告即使不可见也可以点击。

这是我的布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout_mainmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<com.xxx.menu.SurfaceViewMainMenu
  android:id="@+id/view_mainmenu"
  android:layout_width="match_parent"
  android:layout_height="match_parent"/>


     <com.google.android.gms.ads.AdView
    android:id="@+id/ad"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/view_mainmenu"
    android:layout_alignLeft="@id/view_mainmenu"
    ads:adSize="BANNER"
    ads:adUnitId="@string/ad_unit_id_banner"/>

当 RenderThread 首次运行时,加载广告的代码作为 Runnable 由 RenderThread 发布到 UI 线程。

有没有人知道如何让广告立即展示?或者为什么只有在我返回 Activity 时才会绘制广告?

我试过在 RelativeLayout 上调用 forceLayout()/requestLayout() 但这没有帮助。我还尝试在 View 上调用 invalidate()。

谢谢, 汤姆。


编辑

我向 AdView 添加了一个 AdListener,可以确认正在调用 onAdLoaded。广告已加载但不可见。

有效方法:我在 onAdLoaded 回调中发出另一个 adLoad 请求,然后广告出现了。

所以广告只会在我发出第二个请求后显示。有人知道这里发生了什么吗?

最佳答案

我遇到了同样的问题,我所要做的就是在加载时将 adView 置于最前面。 (我推荐这个超过加载它两次)

mAdView.setAdListener(new AdListener()
{
    public void onAdLoaded()
    {
        Log.i("Ads", "onAdLoaded");
        mAdView.bringToFront();
    }
}

关于安卓 AdMob : addView doesn't show ad until return to activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21935153/

相关文章:

java - 如何在 fragment View 中添加 admob 横幅?

iphone - Admob banner integration in Cocos2d 2.0/Admob banner in iphone 游戏

android - 我们可以在Android应用程序中使用Web View 使用Adsense吗

user-interface - 通过 React Native 进行组件叠加

css - DIV 覆盖 DIV,最后面 DIV 中的链接不可访问

java - 安卓异常 : 'java.lang.NoClassDefFoundError: javax.jmdns.JmDNS'

android - 自定义 View - 如何设置它们的 ID,以便可以通过 findViewById() 找到它们?

java - 如何使用 SimpleXML 框架处理继承?

ios - 如何在 iPad 上将 AdMob 广告居中?

css - Firefox 与 Chrome : Background overlay is incorrectly sized with display:table-cell