Android - android.os.NetworkOnMainThreadException Android - android.os.NetworkOnMainThreadException android android

Android - android.os.NetworkOnMainThreadException


NetworkOnMainThreadException: The exception that is thrown when an application attempts to perform a networking operation on its main thread.

You should call sendfeedback method on asynctask then only above code will work. As webserver is taking lot of time to response main thread becomes unresponsive. To avoid it you should call it on another thread. Hence asynctask is better.

here is link that illustrates how to use asynctask


NetworkOnMainThreadException is thrown when your app tries networking operation in main thread.

To fix that you can use a private inner class within your Activity that extends android.os.AsyncTask<Params, Progress, Result> which will do the server call stuffs.

Something as,

private class SendfeedbackJob extends AsyncTask<String, Void, String> {    @Override    protected String doInBackground(String[] params) {        // do above Server call here        return "some message";    }    @Override    protected void onPostExecute(String message) {        //process message    }}

And then invoke above class from submit.setOnClickListener as below,

SendfeedbackJob job = new SendfeedbackJob();job.execute(pass, email);

AsyncTask

References

AsyncTask doc

AsyncTask Android example


if (android.os.Build.VERSION.SDK_INT > 9) {    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();    StrictMode.setThreadPolicy(policy);}