2011-09-09 7 views
1

Android 기기 (Honeycomb) 용 애플리케이션을 개발 중이며 문제가 발생하여 해결이 어려워졌습니다. 응용 프로그램에는 소켓 중심의 원격 서버와 통신하는 백그라운드 스레드가 채워지는 화면 중앙에 여러 줄의 텍스트 필드가 있습니다.Android 개발에서 UI 액세스

그래서 저는 AsyncTask와 doInBackground에서 UI를 업데이트해야한다는 사실을 제외하고는 필요한 것에 매우 가깝습니다. 프로그램이 실행되는 동안 소켓 연결을 유지해야하며 새 메시지가 수신되면이를 UI에 채 웁니다.

메시지가 들어오고 UI에 입력되는 동안 사용자는 다른 소켓에서 메시지를 보낼 수 있습니다.

어떻게해야합니까? onPostExecute (...) 메서드를 사용하면 정확히 필요한 작업을 수행 할 수 없으며 ... doInBackground에서 루프를 사용하면 UI를 업데이트 할 방법이 없습니다.

나는 분명히 뭔가를 놓치고 있습니다. 어떤 제안?

감사합니다.

답변

2

AsyncTask에는 UI를 업데이트하는 기능이 있습니다. doInBackground에서 publishProgress를 호출하면 업데이트 할 수 있도록 UI 스레드에서 onProgressUpdate가 호출됩니다.

+0

이것은 정확히 내가 필요한 것처럼 보입니다. 정말 고맙습니다!!! – Jamie

+1

이것이 효과가 있다면 다른 사용자에게 도움이되도록 답을 설정하십시오. – blessenm