¿Cómo reparar android.os.NetworkOnMainThreadException?

Usando AsyncTask (recomendado)

importar androidx.appcompat.app.AppCompatActivity; importar android.os.AsyncTask; importar android.os.Bundle; importar android.widget.TextView; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; MainActivity de clase pública extiende AppCompatActivity {TextView textLoad, textMessage; final String strMessage = “https://sites.google.com/site/androidersite/text.txt”; @ Anular el vacío protegido onCreate (paquete SavedInstanceState) {super.onCreate (SavedInstanceState); setContentView (R.layout.activity_main); textLoad = findViewById (R.id.textLoad); textMessage = findViewById (R.id.textMessage); textLoad.setText («Cargando …»); new MyTask (). execute (); } clase privada MyTask extiende AsyncTask {Resultado de cadena; @Override protected Void doInBackground (Void… voids) {URL url; intente {url = nueva URL (strMessage); BufferedReader bufferedReader = nuevo BufferedReader (nuevo InputStreamReader (url.openStream ())); String stringBuffer; String string = “”; while ((stringBuffer = bufferedReader.readLine ())! = null) {string = String.format (“% s% s”, string, stringBuffer); } bufferedReader.close (); resultado = cadena; } captura (IOException e) {e.printStackTrace (); resultado = e.toString (); } return null; } @Override protected void onPostExecute (Void aVoid) {textMessage.setText (resultado); textLoad.setText («Finalizado»); super.onPostExecute (aVoid); }}}

Deshabilitar el modo estricto (no recomendado)

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

Intente la prueba de TI,>