마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

멀티채팅 스레드 속 스레드

0 추천

Java에서 구현한 멀티채팅 Client를 android로 가져왔습니다. 

 

Java에서는 Client를 구현할때, 

스레드 2개를 생성해서 하나는 server로 보내는걸로, 

하나는 서버에서 보낸걸 받아서 뿌려주는 형식으로 구현했는데, 

 

안드로이드 오면서 Networking에 무조건 스레드를 사용하게 되면서 

본의 아니게 Thread속 Thread를 생성하는 형식이 되었습니다. 

 

지금 에러는, 대충 이런 에러가 나는데, UI접근 하는 코드는 따로 없는데도 이런 에러가 나네요. 

어떤 구조로 바꾸면 좋을까요? 

 java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView

 

 

uuni (770 포인트) 님이 2016년 5월 28일 질문
UI 를 직접 액세스하는 코드는 없을 지도 모르지만 에러메세지로 보면 adapter를 접근하는 코드가 있는 것 같은데 이 부분이 문제가 되는 듯 하네요. Adapter가 백그라운드 쓰레드에서는 변경이 안되었지만 혹 UI thread 변경이 일어나고 있는지 점검하라네요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...