Admob Android: 建立互联网连接后没有回调到 onAdLoaded
Admob Android: No callback to onAdLoaded after internet connection is established
我正在使用 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 的可见性已经消失。正如我之前所说,如果应用程序在启动前已连接到互联网,则一切正常。
我认为您必须创建 OnConnectionEstablist
event/function,只有在连接到互联网时才会加载广告。
我正在使用 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 的可见性已经消失。正如我之前所说,如果应用程序在启动前已连接到互联网,则一切正常。
我认为您必须创建 OnConnectionEstablist
event/function,只有在连接到互联网时才会加载广告。