2016-08-11 4 views
0

こんにちは私は広告を表示するには、admobのバナーを使用しています。 だから私は一番下にいくつかのスペースを残したので、mobobバナーの読み込みには時間がかかる。 ユーザーがインターネットをオフにした場合、そのバナースペースを使用して自分のアクティビティのコンテンツを表示したいと考えています。ユーザーが自分のインターネットを再びオンにすると、私は自分の活動内容を縮小し、再びadmobバナーを表示します。つまり、レイアウトスペースを拡大または縮小したいと思っています。どのように非表示にして表示するadobランタイム

これは私が試したコードです。このコードは、インターネットがオフの場合にバナースペースを削除します。ユーザーがインターネットを起動した場合、バナーを追加する方法はわかりません。

 


    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

関連する問題