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 NetworkOnMai
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.
SLaks is right, but for Android there is a more delicate way: AsyncTask.
new AsyncTask<Void, Void, Void>(){
@Override
protected Void doInBackground(Void... params){
//Do heavy stuff
}
@Override
protected void onPostExecute(Void result){
//Do UI stuff after heavy stuff
}
}.execute();