Como corrigir o Android Os.NetworkOnMainThreadException?

Usando AsyncTask (recomendado)

importar androidx.appcompat.app.AppCompatActivity; importar android.os.AsyncTask; importar android.os.Bundle; importar android.widget.TextView; importar java.io.BufferedReader; importar java.io.IOException; importar java.io.InputStreamReader; importar java.net.URL; public class MainActivity extends AppCompatActivity { TextView textLoad, textMessage; final String strMessage = “https://sites.google.com/site/androidersite/text.txt”; @Override void protegido onCreate(Pacote salvadoInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textLoad = findViewById(R.id.textLoad); textMessage = findViewById(R.id.textMessage); textLoad.setText("Carregando..."); new MinhaTask().execute(); } private class MyTask extends AsyncTask{ String result; @Override protected Void doInBackground(Void… voids) { URL url; tente { url = nova URL(strMessage); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream())); String stringBuffer; String string = “”; while ((stringBuffer = bufferedReader.readLine()) != null){ string = String.format(“%s%s”, string, stringBuffer); } bufferedReader.close(); resultado = string; } catch (IOException e){ e.printStackTrace(); resultado = e.toString(); } retornar nulo; } @Override protected void onPostExecute(Void aVoid) { textMessage.setText(result); textLoad.setText(“Concluído”); super.onPostExecute(aVoid); } } }

Desativar Modo Estrito (Não recomendado)

if (andróide.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy Privacidade = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(Privacidade); }

Última atualização: 11 de junho de 2023

dot 1
Um pedido?

Eu me esforcei tanto para escrever esta postagem no blog para fornecer valor a você. Será muito útil para mim, se você considerar compartilhá-lo nas mídias sociais ou com seus amigos/família. COMPARTILHAR É ♥️

23 ideias sobre “Como corrigir o Android Os.NetworkOnMainThreadException?”

    • É verdade que o AsyncTask pode causar vazamentos de memória se não for usado com cuidado. Os desenvolvedores devem estar cientes disso.

      Resposta

Deixe um comentário

Quer salvar este artigo para mais tarde? Clique no coração no canto inferior direito para salvar em sua própria caixa de artigos!