我在我的XML中定义了一个AdView,如果用户购买了这个应用的无广告版本,我想让它消失。
我要做的是

if(userhaspurchased){
    if (mAdView != null) {
        mAdView.setVisibility(View.GONE);
        mAdView.pause();
        ViewGroup vg = (ViewGroup) mAdView.getParent();
        mAdView.destroy();
        vg.removeView(mAdView);
        mAdView = null;
    }
    Log.d("Purchased","true");
} else { //Load ad }

广告不可见,但在日志中,我仍然收到adview消息:
02-25 11:14:58.688: I/Ads(9279): Ad is not visible. Not refreshing ad.
02-25 11:14:58.688: I/Ads(9279): Scheduling ad refresh 60000 milliseconds from now.

它们每分钟都在重复。有没有办法完全禁用Layout
更新:@doomsnight answer在我的例子中很好,我只有两个带有广告的布局。否则最好检查购买并最终以编程方式插入AdView

最佳答案

您的xml正在定义广告视图。自动连接。所以当你把它藏起来的时候,它已经被初始化了。
一种解决方案是,对于付费版本,使用完全排除adview的xml。
把它放在上面

if(userhaspurchased)
     setContentView(R.layout.paid_version_xml);
else
     setContentView(R.layout.free_version_xml);

不过,这取决于您有多少个xml和adview。因为为每页维护一个带有adview的变体可能是一个问题。

09-29 22:39