반응형
android.os.NetworkOnMainThreadException 에러
이 예외는 네트워크 작업이 UI 스레드(메인 스레드)에서 동작하기 때문에 발생하며 안드로이드 3.0 이전까지는 발생하지 않던 예외이다. 안드로이드 3.0부터는 지연이 발생할 수 있는 네트워크 작업이 UI 스레드에 영향을 주는 것을 원천적으로 막고 있다. 그래서 안드로이드 3.0 이후 버전을 사용할 경우에는 네트워크 작업을 UI 스레드가 아닌 별도의 스레드(AsyncTask 등)에서 처리해야 한다. 이것이 정상적인 처리 방법이며 혹여 단순한 테스트를 하는 경우나 아주 부득이한 경우에는 다음과 같은 코드를 사용해서 이러한 정책을 우회할 수 있다.
if(android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
SDK는 3.0이상으로 높게 잡은 후, onCreate 구문에서 post등으로 값을 전송하면 저 에러를 만날 수 있습니다.
그때는 저 코드를 넣고 해결하세요~
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - Android Handler 와 Timer(TimerTask) 를 활용한 Intro 화면 구성 (0) | 2013.12.05 |
---|---|
안드로이드 - Bitmap OutOfMemoryError 해결책 (0) | 2013.12.05 |
안드로이드 XmlPullParser 사용 예제 (0) | 2013.12.01 |
안드로이드 onConfigurationChanged 화면 방향 상태 알아보기 (0) | 2013.11.22 |
안드로이드 new OutputStreamWriter(http.getOutputStream(), "EUC-KR") 에서 에러 해결법 (0) | 2013.11.19 |
Http Post 방식으로 웹서버와 자료를 주고받는 예제 (0) | 2013.11.18 |
[Android] 안드로이드 플랫폼에서 HTTP POST 요청 처리하기 ( XML 파싱 ) (0) | 2013.11.18 |
Invalid project description error 메시지 해결 방법 (0) | 2013.11.18 |