2014년 6월 4일 수요일

[Android] 스레드정책(Thread Policy)



스레드정책(Thread Policy)



안드로이드 버전 3.0 이상부터는 인터넷 연결은 스레드나 핸들러에서 처리하도록 정책이 바뀌었습니다. 그래서 UI 쓰레드에서 인터넷 연결을 시도하면(HttpURLConnection과 같은 것으로) 실행 타임에서 에러가 발생합니다. 

에러 발생 원인은 Network 관련 operation 을 main thread 에서 했기 때문, 추가로 strict mode 가 설정되었기 때문입니다.







StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.
Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);  

// Networking 을 처리하는 부분에 위의 코드를 추가해주면 됩니다.





활용예제


@TargetApi(Build.VERSION_CODES.GINGERBREAD)

public class ThreadPolicy {

             public ThreadPolicy() {


                          StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.

                                                                                                   Builder().permitAll().build();
                          StrictMode.setThreadPolicy(policy);
             }
}

new ThreadPolicy();





댓글 없음:

댓글 쓰기