Skip to content Skip to sidebar Skip to footer

Avoiding Networkonmainthreadexception

I've understood that a network operation is not allowed on the GUI thread. Ok for me. But why using this code on a Dialog button click callback still produce NetworkOnMainThreadExc

Solution 1:

You need to call .start(), not .run().

.run() is the method you override that actually executes. .start() is a system-provided method that actually starts a thread.

Solution 2:

SLaks is right, but for Android there is a more delicate way: AsyncTask.

new AsyncTask<Void, Void, Void>(){

    @OverrideprotectedVoid doInBackground(Void... params){
        //Do heavy stuff
    }

    @Overrideprotected void onPostExecute(Void result){
        //Do UI stuff after heavy stuff
    }
}.execute();

Post a Comment for "Avoiding Networkonmainthreadexception"