Wie behebt man Android Os.NetworkOnMainThreadException?

Durch die Verwendung von AsyncTask (empfohlen)

import androidx.appcompat.app.AppCompatActivity; import android.os.AsyncTask; android.os.Bundle importieren; import android.widget.TextView; java.io.BufferedReader importieren; java.io.IOException importieren; java.io.InputStreamReader importieren; java.net.URL importieren; öffentliche Klasse MainActivity erweitert AppCompatActivity { TextView textLoad, textMessage; abschließende Zeichenfolge strMessage = „https://sites.google.com/site/androidersite/text.txt“; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView (R.layout.activity_main); textLoad = findViewById (R.id.textLoad); textMessage = findViewById (R.id.textMessage); textLoad.setText("Laden..."); neue MyTask().execute(); } Private Klasse MyTask erweitert AsyncTask{ String result; @Override protected Void doInBackground(Void… voids) { URL url; try { url = neue URL (strMessage); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream())); Zeichenfolge stringBuffer; Zeichenfolge Zeichenfolge = „“; while ((stringBuffer = bufferedReader.readLine()) != null){ string = String.format(“%s%s”, string, stringBuffer); } BufferedReader.close(); Ergebnis = Zeichenkette; } catch (IOException e){ e.printStackTrace(); Ergebnis = e.toString(); } Null zurückgeben; } @Override protected void onPostExecute (Void aVoid) { textMessage.setText (result); textLoad.setText("Fertig"); super.onPostExecute (aVoid); } } }

Strengen Modus deaktivieren (nicht empfohlen)

if (androide.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy Datenschutzrichtlinien = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(Datenschutzrichtlinien); }}

Letzte Aktualisierung: 11. Juni 2023

Punkt 1
Eine Bitte?

Ich habe mir so viel Mühe gegeben, diesen Blogbeitrag zu schreiben, um Ihnen einen Mehrwert zu bieten. Es wird sehr hilfreich für mich sein, wenn Sie es in den sozialen Medien oder mit Ihren Freunden / Ihrer Familie teilen möchten. TEILEN IST ♥️

23 Gedanken zu „Wie behebt man die Android Os.NetworkOnMainThreadException?“

  1. Auch wenn AsyncTask empfohlen wird, ist es wichtig, die potenziellen Speicherverluste zu berücksichtigen, die dadurch verursacht werden können.

    antworten

Hinterlasse einen Kommentar

Möchten Sie diesen Artikel für später speichern? Klicken Sie auf das Herz in der unteren rechten Ecke, um in Ihrer eigenen Artikelbox zu speichern!