2016-08-11 88 views
0

你好家伙我使用admob横幅来显示广告。 所以我留下了一些空间,所以admob暴徒横幅加载。 因此,如果用户关闭互联网,那么我想使用该横幅空间来显示我的活动内容。而如果用户再次打开他的互联网,那么我会缩小我的活动内容并再次显示admob横幅,所以总之我想要扩大或缩小布局空间。如何隐藏和显示admob横幅adview运行时

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

 


    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

首先,你需要决定什么时候你的应用程序会再次检查连接。 检查生命周期https://developer.android.com/reference/android/app/Activity.html

之后,让我们假设您希望每次检查应用程序时都返回您想要显示您的adview的活动。

@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喜欢使用: Internet Connection