반응형
android.os.NetworkOnMainThreadException
- 해당 Exception 은 Network 관련된 operation 을 Main Thread 에서 수행했을 때 발생하는 Exception 이다. 해당 Exception 은 진저브레드 ( 2.3.3 )에서는 발생하지 않았고, ICS ( 4.0.0 )부터 발생을 하기 시작한다. 필자가 진저와 ICS 단말 둘다에서 테스트해본 결과 진저에서는 발생하지 않던 exception 이 ICS 에서 발생했기 때문이다. 이는 Strict mode 라는 것이 등장했기 때문.
- 원인은 말 그대로 Network 관련 operation 을 main thread 에서 했기 때문이다. 추가로 strict mode 가 설정되었기 때문이다.
- 해결책은 2가지가 있다.
1. network operation 을 async task 나 다른 thread 로 작업한다.
2. StrictMode 의 ThreadPolicy 해제한다.
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] AndroidHttpClient vs. DefaultHttpClient vs. HttpURLConnection (0) | 2012.11.09 |
---|---|
[android] Invalid use of SingleClientConnManager: connection still allocated. (0) | 2012.11.09 |
[android] proguard (프로가드)적용하기. (0) | 2012.11.09 |
[android] 구글 개발자 등록하기. (8) | 2012.11.08 |
[android] InputStream 은 2번 읽을 수 없다. (2) | 2012.11.07 |
댓글