Logo tr.removalsclassifieds.com

android.os.NetworkOnMainThreadException nasıl düzeltilir?

Anonim

AsyncTask kullanarak (önerilir)

androidx.appcompat.app.AppCompatActivity'yi içe aktarın; android.os.AsyncTask'ı içe aktarın; android.os.Bundle'ı içe aktar; android.widget.TextView içe aktarın; java.io.BufferedReader'ı içe aktarın; java.io.IOException'ı içe aktarın; java.io.InputStreamReader'ı içe aktarın; java.net.URL'yi içe aktar; public class MainActivity, AppCompatActivity'yi genişletir { TextView textLoad, textMessage; final String strMessage = “https://sites.google.com/site/androidersite/text.txt”; @Override protected void onCreate(Bundle saveInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textLoad = findViewById(R.id.textLoad); textMessage = findViewById(R.id.textMessage); textLoad.setText(“Yükleniyor…”); yeni Görevim().execute(); } özel sınıf MyTask, AsyncTask'ı genişletir{ Dize sonucu; @Override korumalı Void doInBackground(Void… voids) { URL url; try { url = new URL(strMessage); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream())); String stringBuffer; Dizi dizisi = “”; while ((stringBuffer = bufferedReader.readLine()) != null){ string = String.format(“%s%s”, string, stringBuffer); } bufferedReader.close(); sonuç = dizi; } yakalama (IOException e){ e.printStackTrace(); sonuç = e.toString(); } null döndür; } @Override protected void onPostExecute(Void aVoid) { textMessage.setText(result); textLoad.setText(“Bitti”); super.onPostExecute(aVoid); } } }

Katı Modu Devre Dışı Bırak (Önerilmez)

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

android.os.NetworkOnMainThreadException nasıl düzeltilir?