본문 바로가기
프로그래밍/Android

안드로이드 : Android 3.0 허니콤 소켓 개발시 주의점

by 판데스 2011. 12. 3.
반응형


보통 안드로이드 버전 2.2 2.3 개발할시에 소켓 관련 클래스에서는 

implements Runnable 을 사용하여 개발 하고 있습니다.

그러나 허니콤, 태블릿 사양 에서 개발 할경우에 Runnable 을 사용 할 경우에는 이런 아름다운 에러 메시지를 로그켓에서 보실수 있습니다.

E/TCP(599): android.os.NetworkOnMainThreadException
E/TCP(599): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
E/TCP(599): at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:368)
E/TCP(599): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:208)
E/TCP(599): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:187)
E/TCP(599): at java.net.Socket.startupSocket(Socket.java:625)
E/TCP(599): at java.net.Socket.<init>(Socket.java:258)


이유인 즉슨 안드로이드 허니콤 버전에서 소켓 통신을 하기 위해서는 따로 Thread 를 생성하여 사용하도록 변경 하였습니다.

그러니 허니콤에서 소켓을 사용하여 개발 하실분들은 Thread 상속받아서 개발 하시면 정상적으로 소캣을 사용하실수 있게 되겠습니다.

 

반응형