avoiding NetworkOnMainThreadException

后端 未结 2 1276
情书的邮戳
情书的邮戳 2021-01-25 09:39

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

相关标签:
2条回答
  • 2021-01-25 10:20

    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.

    0 讨论(0)
  • 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();
    
    0 讨论(0)
提交回复
热议问题