0

I would like to constantly check for internet connection and change TextView if connection appears or disappears. But the TextView doesn't change until I refresh the application. Here's my current code:

    TextView offline;
    public void run() {
  try {
    Looper.prepare();

    new Handler();
        if(isInternetOn()) {
            swebview.reload();
            offline.setText(null);
            }else{
                swebview.reload();
                offline.setText("No Internet Connection!");
            }
    Looper.loop();
  } catch (Throwable t) {
    Log.d(TAG, "halted due to an error", t);
  }
}

and the isInternetOn() code:

public final boolean isInternetOn() {
    ConnectivityManager connec =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    // ARE WE CONNECTED TO THE NET
    if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED ||
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING ||
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED ) {
    // MESSAGE TO SCREEN FOR TESTING (IF REQ)
    //Toast.makeText(this, connectionType + ” connected”, Toast.LENGTH_SHORT).show();
    return true;
    } else if ( connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED ||  connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED  ) {
    //System.out.println(“Not Connected”);
    return false;
    }
    return false;
    }
}
lambda
  • 3,295
  • 1
  • 26
  • 32

1 Answers1

0

Hi try this following code to check internet constantly and to update your text view

 TextView tvstatus;
 tvstatus=(TextView)findViewById(R.id.txtviewstatus);

   public static boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) MbridgeApp.getContext().getSystemService(
    Context.CONNECTIVITY_SERVICE);

NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected()) {
     Toast.makeText(this, "Network Available", Toast.LENGTH_LONG).show();
        tvstatus.setText("WifiNetwork kAvailable");

     return true;
}

NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnected()) {

  Toast.makeText(this, "Network Available", Toast.LENGTH_LONG).show();
        tvstatus.setText("MobileNetworkAvailable");

  return true;
}

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {

    Toast.makeText(this, "Network Available", Toast.LENGTH_LONG).show();
        tvstatus.setText("Network Available");

  return true;
}

return false;
 }
androidgeek
  • 3,440
  • 1
  • 15
  • 27