메인 스레드에서 IO 작업이 막혀 있습니다. 그 이유가.. IO로 인해서 블럭이 되면.. 화면이 멈추기 때문이죠.. 화면을 그리고 이벤트를 처리하는 스레드가 메인 스레드입니다. 그래서.. 스레드를 사용하고 그 결과를 핸들러를 사용해서 메인 스레드로 전달합니다. 물론 메인 스레드로 데이터가 넘어오기전에는 루퍼라는 놈을 통해서... 메인스레드로 전달이 되는데.. AsyncTask는 스레드에서 IO처리 및 결과를 루퍼로 전달하는 기능을 추상화한 구현체이죠..
그리고, 위 에러 콜스택에서 NullPointerException 이 발생했네요.. sqlconnnection 객체가 null입니다. 그리고 connection timeout은 사용하는 네트웍에 따라서 발생할 수 있는 이슈라서, 아래와 같이 처리해 주시면 됩니다.
finally {
conn.close();
}
의 형태가..
finally {
if(conn != null) {
conn.close();
}
}
와 같이 바꿔야 합니다.