我在Layout的XML中定义了一个Layout,如果用户购买了该应用的无广告版本,我想让它消失。
我要做的是
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.每时每刻都在重复。有什么办法完全禁用AdView吗?
更新:在我的例子中, @Doomsknight答案很好,我只有两个广告布局。否则将是检查购买并最终以编程方式插入AdView的最佳实践。
发布于 2014-02-25 10:21:44
您的xml正在定义广告视图。以及自动连接。所以当你隐藏它的时候,它已经被初始化了。
一种解决方案是为付费版本提供一个完全排除评论的xml。
把它放在最上面
if(userhaspurchased)
setContentView(R.layout.paid_version_xml);
else
setContentView(R.layout.free_version_xml);然而,这取决于您有多少xml和adview。因为为每一页保持一个变化并在其上进行评论可能是一个问题。
发布于 2014-02-25 10:30:18
不要在xml文件中添加adview视图。相反,在xml布局文件中添加一个占位符。
<LinearLayout
android:id="@+id/admob"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
</LinearLayout>在您的代码中:
if(!userhasPurchased)
{
AdView adView = new AdView(this, AdSize.BANNER, adunit_id);
LinearLayout layout = (LinearLayout) findViewById(R.id.admob);
layout.addView(adView);
AdRequest adRequest = new AdRequest();
adView.loadAd(adRequest);
}https://stackoverflow.com/questions/22011069
复制相似问题