안드로이드 버전 3.0 이상에서 UI Thread에서 인터넷 연결시 runtime 에러 안 나게 하는 법
안드로이드 버전 3.0 이상부터는 인터넷 연결은 쓰레드나 핸들러에서 처리하도록 정책이 바뀌었다. 그래서 UI 쓰레스에서 인터넷 연결을 시도하면(HttpURLConnection과 같은 것으로) 실행 타임에서 에러가 발생한다.
그런데 아래와 같은 코드를 인터넷 연결을 시도하는 코드 앞에
표시해 두면 안드로이드 버전 3.0 이상에서도 정상적으로 잘 실행이 된다.
onCreate()에 다음과 같이...
@Override
public void onCreate(Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT > 9){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.get_signature_from_toodledo);
txt = (TextView)findViewById(R.id.txt);
}
'Android' 카테고리의 다른 글
RectF와 Path로 그리는 그림 (0) | 2015.10.20 |
---|---|
Intent와 PendingIntent 이해하기 (1) | 2015.10.20 |
HttpURLConnection에 대한 개괄적 개념 (0) | 2015.10.20 |
ping을 통해서 네트워크 연결 상태 체크하기 - 안드로이드 소스 코드에서 (0) | 2015.10.20 |
안드로이드 앱에서 구글, 네이버, 다음 검색 기능을 이용하여 웹 검색하기 (0) | 2015.10.19 |