Android AdMob:addView 在返回活动之前不会显示广告

2024-05-18

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

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

这不是等待广告加载的问题,因为 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 首次运行时,加载广告的代码由 RenderThread 作为 Runnable 发布到 UI 线程。

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

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

谢谢, 汤姆.


EDIT

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

什么有效:我在 onAdLoaded 回调中发出另一个 adLoad 请求,然后广告就会显示出来。

因此,广告仅在我提出第二个请求后才会显示。有人知道这是怎么回事吗?


我遇到了同样的问题,我所要做的就是在加载时将 adView 带到前面。 (我建议将其加载两次)

mAdView.setAdListener(new AdListener()
{
    public void onAdLoaded()
    {
        Log.i("Ads", "onAdLoaded");
        mAdView.bringToFront();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android AdMob:addView 在返回活动之前不会显示广告 的相关文章

随机推荐