title: Checking internet connection on android
body: <p>I have the following code for checking internet connection wifi/EDGE/GPRS/3G on my application.</p>
  
  <p>the code is </p>
  
  <pre><code>public static boolean checkConn(Context ctx) {
      ConnectivityManager conMgr = (ConnectivityManager) ctx
              .getSystemService(Context.CONNECTIVITY_SERVICE);
      if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
          || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING) {
          return true;
      } else if (conMgr.getNetworkInfo(0).getState()==NetworkInfo.State.DISCONNECTED
          || conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED){
          return false;
      }
      return false;
  }
  </code></pre>
  
  <p>and I am calling it like below :</p>
  
  <pre><code>if (CheckInternet.checkConn(introPage.this) == true) {
      Intent toMainPage = new Intent(introPage.this, mainPage.class);
      System.gc();
      startActivity(toMainPage);
  } else if (CheckInternet.checkConn(getApplicationContext()) == false) {
      Toast.makeText(getApplicationContext(),
          "Sorry, No internet connectivity found", Toast.LENGTH_SHORT)
              .show();
  }
  </code></pre>
  
  <p>But I am having an issue, which is that if I am connected to wifi, and I open the application, it works fine, but if I close application and turn off wifi and re-open application, it doesn't through the error of "no connection" , I need to turn off my device and then turn it on, and same case is if wifi is off, and I open application, it throws error of "no connection", and if I turn it on, still it throws the same error of "no connection", until unless I turn off and on device.</p>