This is not a duplicate
I want to check real-time internet connection from my activity using AsyncTaskand Handler to display or hide TexView if a connection is available or not. But it doesn't work.
My code throws NetworkOnMainThreadException even using AsyncTask
I'm using this code:
class  CheckNetWorkConnection  extends AsyncTask<String, Void,Boolean>{
MyActivity activity;
    public checkNetWorkConnection(MyActivity activity) {
        this.activity= activity;
    }
    @Override
    protected Boolean doInBackground(String... strings) {
        boolean networkAvalaible;
                try {
                    URL myUrl = new URL("https://www.stackoverflow.com");
                    URLConnection connection = myUrl.openConnection();
                    connection.setConnectTimeout(3000);
                    connection.connect();
                    networkAvalaible = true;
                } catch (Exception e) {
                  //I'm catching NetworkInMainThreadException here 
                    e.printStackTrace();
                    networkAvalaible = false;
                }
            }
        });
   // doInBackground always retun false
        return networkAvalaible;
    }
    @Override
    protected void onPostExecute(Boolean aBoolean) {
    // Using handler to repeat Task
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                if (aBoolean){
                    activity.noConnection.setVisibility(View.GONE);
                }else {
                    activity.noConnection.setVisibility(View.VISIBLE);
                }
            }
        },3000);
        super.onPostExecute(aBoolean);
    }
}
 
     
     
     
    