Android 单个admob ad的网络请求日志过多
我只加载过一次admob广告,但我收到的单个广告的请求日志太多。有人能告诉我为什么收到的日志太多吗 加载广告后,我开始对广告进行网络跟踪,以测试它。 下面是我们如何开始网络跟踪 I/Ads(4660):GMA调试开始 I/Ads(4660):GMA调试内容{“时间戳”:1510679993741,…} I/Ads(4660):GMA调试完成 我在GMA调试内容中用不同的参数获得了单个广告的10多次日志 有人能告诉我为什么我要为一个广告得到这些日志吗 这是我的课Android 单个admob ad的网络请求日志过多,android,admob,Android,Admob,我只加载过一次admob广告,但我收到的单个广告的请求日志太多。有人能告诉我为什么收到的日志太多吗 加载广告后,我开始对广告进行网络跟踪,以测试它。 下面是我们如何开始网络跟踪 I/Ads(4660):GMA调试开始 I/Ads(4660):GMA调试内容{“时间戳”:1510679993741,…} I/Ads(4660):GMA调试完成 我在GMA调试内容中用不同的参数获得了单个广告的10多次日志 有人能告诉我为什么我要为一个广告得到这些日志吗 这是我的课 public class AdVi
public class AdView extends FrameLayout {
private PublisherAdView mAdView;
private boolean mIsLoaded;
public AdView(@NonNull final Context context) {
this(context, null, 0);
}
public AdView(@NonNull final Context context, @Nullable final AttributeSet attrs) {
this(context, attrs, 0);
}
public AdView(@NonNull final Context context, @Nullable final AttributeSet attrs, final int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, null);
}
public AdView(@NonNull final Context context, final String unitId) {
super(context, null, 0);
init(context, unitId);
}
public AdView(@NonNull final Context context, final String unitId, final ViewGroup.LayoutParams layoutParams) {
this(context, unitId);
setMargins(layoutParams);
}
public void init(final Context context, final String unitId) {
//TODO: inflating xml and setAdUnitId causing crash java.lang.IllegalStateException: The ad unit ID can only be set once on AdView., investigation required if we can do that or not
initializeAdView(context, unitId, 0);
}
public void init(final Context context, final String unitId, final int colorId) {
initializeAdView(context, unitId, colorId);
}
private void initializeAdView(final Context context, final String unitId, final int colorId) {
mAdView = new PublisherAdView(context);
mAdView.setAdSizes(AdSize.MEDIUM_RECTANGLE);
if (!TextUtils.isEmpty(unitId)) {
mAdView.setAdUnitId(unitId);
}
if (colorId == 0) {
mAdView.setBackgroundColor(context.getResources().getColor(R.color.f1_cream));
} else {
mAdView.setBackgroundColor(ContextCompat.getColor(context, colorId));
}
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
if (colorId == 0) {
mAdView.setBackground(null);
}
}
});
setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS);
addView(mAdView);
}
public void setScrollView(EdgeGlowNestedScrollView mScrollView) {
//mScrollView.getViewTreeObserver().addOnScrollChangedListener(() -> showAdWhenFullyVisible());
}
private void setMargins(final ViewGroup.LayoutParams parentLayoutParams) {
final LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) parentLayoutParams;
final int margin = (int) getContext().getResources().getDimension(R.dimen.margin_normal);
layoutParams.setMargins(0, margin, 0, margin);
setLayoutParams(layoutParams);
}
public void load() {
if (!mAdView.isActivated()) {
mAdView.loadAd(new PublisherAdRequest.Builder().build());
}
}
public void showAdWhenFullyVisible() {
final Rect scrollBounds = new Rect();
if (getGlobalVisibleRect(scrollBounds)) {
load();
}
}
}
这就是我所说的
final AdView adView = ((AdView) holder.itemView);
final Context context = holder.itemView.getContext();
adView.init(context, getAdUnitId(context, position));
adView.load();
您每分钟收到这些消息多少次?请显示您创建和添加
AdView
@Benoit的代码至少20次您可以显示AdView
实例化和调用公共方法的上下文吗?下面是我如何调用final AdViewHolder holder=(AdViewHolder)holderBase;最终AdView AdView=((AdView)holder.itemView);final Context=holder.itemView.getContext();init(上下文,getAdUnitId(上下文,位置));adView.load()代码>