Android Os.NetworkOnMainThreadExceptionを修正するには?

Android OS の networkonmainthreadexception 8620 を修正する方法

AsyncTask を使用する (推奨)

androidx.appcompat.app.AppCompatActivity をインポートします。 android.os.AsyncTask をインポートします。 android.os.Bundle をインポートします。 android.widget.TextView をインポートします。 java.io.BufferedReader をインポートします。 java.io.IOException をインポートします。 java.io.InputStreamReader をインポートします。 java.net.URL をインポートします。 public class MainActivity extends AppCompatActivity { TextView textLoad, textMessage; final String 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(“Loading…”); new MyTask().execute(); } private class MyTask extends AsyncTask{ String result; @Override protected Void doInBackground(Void… voids) { URL url; try { url = new 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(); result = string; } catch (IOException e){ e.printStackTrace(); result = e.toString(); } return null; } @Override protected void onPostExecute(Void aVoid) { textMessage.setText(result); textLoad.setText(“Finished”); super.onPostExecute(aVoid); } } }

Strict モードを無効にする (非推奨)

(もしアンドロイド.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy 方針 = 新しい StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); }

XNUMXつのリクエスト?

私はあなたに価値を提供するために、このブログ記事を書くことに多大な努力を払ってきました. ソーシャルメディアや友人/家族と共有することを検討していただければ、私にとって非常に役立ちます. 共有は♥️

後で読むためにこの記事を保存しますか? 右下のハートをクリックして自分の記事ボックスに保存!

著者について

Chara Yadav は、金融の MBA を取得しています。 彼女の目標は、金融関連のトピックを単純化することです。 彼女は約 25 年間、金融業界で働いてきました。 彼女は、ビジネススクールやコミュニティ向けに複数の金融および銀行のクラスを開催してきました。 続きを読む バイオページ.