如何隐藏和显示admob横幅广告视图运行时

时间:2016-08-11 18:36:10

标签: android android-layout admob

大家好我正在使用admob横幅展示广告。 所以我在底部留下了一些空间,所以adob mob mob banner load。 因此,如果用户关闭互联网,那么我想使用该横幅空间来显示我的活动内容。如果用户再次打开他的互联网,那么我会缩小我的活动内容并再次显示admob横幅,所以总之我希望增加或缩小布局空间。

这是我尝试的代码。如果互联网关闭,此代码将删除横幅空间。但如果用户打开互联网,我不知道如何再次添加横幅。



    public class MainActivity extends AppCompatActivity {

      @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);



            MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");

            final AdView mAdView = (AdView) findViewById(R.id.adView);
            final AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);

            mAdView.setAdListener(new AdListener() {
                @Override
                public void onAdFailedToLoad(int i) {
                    //super.onAdFailedToLoad(i);
                    mAdView.setVisibility(View.GONE);
                }

            });
        }

    }

1 个答案:

答案 0 :(得分:1)

首先,您需要决定应用程序何时再次检查连接。 检查https://developer.android.com/reference/android/app/Activity.html

的生命周期

之后,假设您希望每次将应用程序返回到要显示您的广告视图的活动时进行检查。

 @Override
    protected void onRestart() {
        if(checkAppConnectionStatus(MainActivity.this)){mAdView.setVisibility(View.VISIBLE);}
        else{ mAdView.setVisibility(View.GONE);}
        super.onRestart();
    }

public static boolean checkAppConnectionStatus(Context context) {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        return true;
    }else{
        return false;
    }
}

检查我的其他答案,了解如何在utils类appConnectionStatus中使用like: Internet Connection