Android
[Android] android.os.NetworkOnMainThreadException
G A
2024. 10. 3. 19:49
Java 오류 해결 NetworkOnMainThreadException
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xx.xx/com.xx.xx.Activity}: android.os.NetworkOnMainThreadException
Caused by: android.os.NetworkOnMainThreadException
네트워크 연결 작업 스레드는 main 스레드 말고 멀티 스레드로 돌려야 된다.
아래 코드에서는 thread.run() 대신 thread.start()로 수정하여 해결.
문제 코드
NetworkThread networkThread = new NetworkThread();
networkThread.run();
private class NetworkThread extends Thread {
@Override
public void run() {
try {
URL url = new URL("https://xxx");
InputStream inputStream = url.openStream(); //NetworkOnMainThreadException 발생
. . .
}
}
}
수정 코드
NetworkThread networkThread = new NetworkThread();
networkThread.start(); //멀티스레드로 돌림
try {
networkThread.join();
} catch (Exception e) {
e.printStackTrace();
}
private class NetworkThread extends Thread {
@Override
public void run() {
try {
URL url = new URL("https://xxx");
InputStream inputStream = url.openStream();
. . .
}
}
}
반응형