Admob Android:建立互联网连接后没有对onAdLoaded的回调

时间:2018-04-13 06:47:29

标签: android admob google-admob

我正在使用admob广告。如果我在打开应用程序之前连接到互联网,广告就会正确加载,但是,如果我首先启动应用程序而不连接到互联网,应用程序启动后,如果我连接到互联网,则没有回复onAdLoaded加载广告。

我的布局概述:

    <RelativeLayout 
        <layout_height>"match_parent"<layout_height>
        <layout_width>"match_parent"<layout_width>
            <RelativeLayout>
                <layout_height>"match_parent"<layout_height>
                <layout_width>"match_parent"<layout_width>   
                <layout_above>"adView"<layout_above>
                     <!--Main content--->
            </RelativeLayout>
            <com.google.android.gms.ads.AdView
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                android:id="@+id/adView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_alignParentBottom="true"
                android:visibility="gone"
                ads:adSize="BANNER"
                ads:adUnitId="@string/test_ad_id">
            </com.google.android.gms.ads.AdView>
    </RelativeLayout>

Java代码:

    MobileAds.initialize(this, getString(R.string.test_ad_id));
    final AdView adView = findViewById(R.id.adView);
    final AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);

    adView.setAdListener(new AdListener() {

        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            adView.setVisibility(View.VISIBLE);
        }

        @Override
        public void onAdFailedToLoad(int i) {
            super.onAdFailedToLoad(i);
            adView.setVisibility(View.GONE);
        }
    });

这很奇怪,因为在应用程序运行后连接到互联网时没有onAdLoaded回调。 adView可见性是否会导致问题? 我认为可见性不是问题,因为最初adView的可见性已经消失。正如我所说,如果应用程序在启动之前已连接到互联网,那么一切正常。

1 个答案:

答案 0 :(得分:0)

我认为您必须创建OnConnectionEstablist事件/功能,只有在互联网连接时才会加载广告。