我创建了一个横幅广告,(x)按钮会破坏广告视图。当我在同一个活动中再次加载广告时,它不会调用adListener方法。应用程序第一次开始工作。因此,首次出现广告时我可以看到Visible(x)按钮,但是当我使用(x)按钮销毁广告时,它会销毁广告,但是当我加载广告时,它会成功加载广告,但它并未调用' adListener&# 39;所以按钮不会显示。
这是我的代码:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" >
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="MEDIUM_RECTANGLE"
ads:adUnitId="@string/banner_home_footer">
</com.google.android.gms.ads.AdView>
</LinearLayout>
</FrameLayout>
<LinearLayout
android:id="@+id/layout_close_banner_ad"
android:layout_width="30dp"
android:layout_height="30dp"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="end"
android:visibility="gone"
android:background="@drawable/round_view">
<ImageView
android:id="@+id/imageview_close_banner_ad"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_action_close_dialog" />
</LinearLayout>
</FrameLayout>
班级档案:
mAdView = (AdView) findViewById(R.id.adView);
adRequest = new AdRequest.Builder()
.build();
mAdView.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
Log.i("Ads", "onAdClosed");
super.onAdClosed();
}
@Override
public void onAdFailedToLoad(int i) {
Log.i("Ads", "onAdFailedToLoad");
super.onAdFailedToLoad(i);
}
@Override
public void onAdLeftApplication() {
Log.i("Ads", "onAdLeftApplication");
super.onAdLeftApplication();
}
@Override
public void onAdOpened() {
Log.i("Ads", "onAdOpened");
super.onAdOpened();
adCloseButton.setVisibility(View.VISIBLE);
}
@Override
public void onAdLoaded() {
Log.i("Ads", "onAdLoaded");
super.onAdLoaded();
adCloseButton.setVisibility(View.VISIBLE);
}
});
private void showBannerAd() {
mAdView.loadAd(adRequest);
}
//点击关闭图标
时销毁广告 adCloseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mAdView != null){
mAdView.destroy();
}
adCloseButton.setVisibility(View.GONE);
}
});
答案 0 :(得分:0)
来自docs关于destroy
销毁广告视图。应该在父Activity的onDestroy()方法中调用此方法。 调用destroy()后,不应在广告视图中调用其他方法。
而不是致电destroy
,而是将广告的展示次数设置为View.Invisible
或View.GONE
。在onAdLoaded
adView中制作广告VISIBLE
。