Android "android.os.NetworkOnMainThreadException" 발생 해결방법

"android.os.NetworkOnMainThreadException" 런타임 예외는 안드로이드 진저브레드 이후에 생겨났다.
네트워크 작업(요청/응답)은 지연이 생길 수 있어서 UI 를 담당하고 있는 메인쓰레드에서 처리할 수 없도록 하였다.
때문에 별보의 쓰레드를 두어 처리하여야 한다.

추천하지는 않지만 강제로 메인쓰레드에서 네트워크 작업을 하려면
다음과 같이 onCreate 에서 코드를 추가하도록 한다.

public void onCreate() {
     StrictMode.enableDefaults();
     super.onCreate();
}

위 코드는 SDK 9 부터 지원되기때문에 AndroidManifest.xml 파을에서 다음과 같이 9 이상으로 설정되어 있어야 한다.

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" />


comments:

댓글 쓰기