본문 바로가기
프로그램/Android

android.os.NetworkOnMainThreadException 에러

by 로드러너 2014. 10. 1.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

android.os.NetworkOnMainThreadException 에러는 메인 쓰레드에서 네트워크 통신을 하는 경우 발생하는 오류이다.


안드로이드 버전 3.0 부터 UI쓰레드에는 UI 관련 작업만 하고 지연이 발생할 가능성이 있는 작업은 다른 쓰레드에서 하도록 되어 있다고 합니다.


이 오류를 해결하는 방법은 별도의 작업 쓰레드로 분리해서 작업하거나 AsynkTask 를 이용해서 백그라운드 작업을 구현한다.



또다른 방법은 MainActivity 의 OnCreate() 메소드에 다음 코드를 추가한다.


StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectNetwork().penaltyLog().build());


protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_my);


            StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectNetwork().penaltyLog().build());