繁体   English   中英

为无广告用户安全地从LinearLayout中删除AdView

[英]Safely Removing an AdView from a LinearLayout for Ad Free Users

我有一个带有横幅广告的Android应用。 仅在检查广告是否可以显示之后,才将AdView元素放入LinearLayout中。

但是,用户可以在程序运行期间购买NoAd。 这意味着我必须安全地停止广告并将Adview从程序中删除,而不会违反Admob规则,在该规则中您无法隐藏广告。

这里是我的代码,但我对在部分非常不确定if上线的语句if (mAdView != null) { // It might not be created yet

那只是隐藏它,而不是完全删除它吗?:

public void turnAdvertsOnOff(boolean on) {
    advertsOn = on;

    // IMPORTANT - changes to layout must be done on the UI Thread or will get error
    m_Context.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            LinearLayout myLayout;
            // NEW
            //AdView mAdView;

            myLayout = (LinearLayout) m_Context.findViewById(R.id.myLayout);
            //mAdView = (AdView) m_Context.findViewById(R.id.adView);

            if(advertsOn){
                if(mAdView == null && myLayout != null) {
                    // Create it and add it to the LinearLayout
                    mAdView = new AdView(m_Context);
                    // Sizes BANNER, SMART_BANNER, LARGE_BANNER
                    mAdView.setAdSize(AdSize.SMART_BANNER);
                    mAdView.setAdUnitId(adIdBanner);
                    myLayout.addView(mAdView);
                }
                if (mAdView != null) mAdView.setVisibility(View.VISIBLE);
            }else {
                if (mAdView != null) { // It might not be created yet
                    mAdView.pause();
                    mAdView.setEnabled(false);
                    mAdView.setVisibility(View.GONE);
                    //mAdView.destroy();
                    //mAdView.setVisibility(View.INVISIBLE);
                    //mAdView.pause();
                    //mAdView.setVisibility(View.GONE);
                }
            }
        }});
}

首选方法是从其父项中remove() AdView
为什么不将“可见性”设置为“消失”?
如果您将可见性设置为GONE,则AdView仍将请求Ad Server填充广告,因此最好完全删除AdView

例如 -
如果用户已通过IAP删除了广告,则在布局文件中添加AdView,只需调用myLayout.removeView(mAdView);

同样,如果您正在从ui线程中调用turnAdvertsOnOff() ,则无需调用runOnUiThread()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM