안드로이드를 개발하면서, 당연스럽게도 Thread를 사용하여 패킷을 일정간격으로 체크해서
패킷이 들어왔을때 동작하도록 프로그램을 짰다.
당연히 잘 될줄 알았는데... 에러를 뿜으면서 전혀 되지를 않는것이었다..
무엇때문인지 보았더니 Thread 내부에서 변경된 내용을 UI에 보여주는 부분에서
계속 프로그램이 죽어버렸다.
인터넷 서핑을 통해서 왜 그런지 알게 되었는데
"안드로이드 에서는 UI Thread 이외의 Thread 에서 UI를 바꿀수 없다" 라는게 문제같았다...
결국 찾은 방법은 unOnUiThread 를 사용하는 방법이었는데.. 해당 내용을 Thread 내부에 넣고
UI 변경하는 부분을 해당 구문 안에서 실행하게 했더니 에러가 없이 잘 돌아가게 되었다.
runOnUiThread(new Runnable(){ // 안드로이드에서 Ui 쓰레드에서만 UI를 바꿀 수 있음.
@Override
public synchronized void run(){
// 실제 UI 뿌리는 과정
}
});
아직도 갈길이 멀기만한 안드로이드 ~!
'안드로이드 개발' 카테고리의 다른 글
안드로이드에서 현재 최상위 Activity 값 알아보기 (1) | 2011.02.17 |
---|---|
안드로이드 Cursor 사용시 Finalizing a Cursor that has not been deactivated or closed. 문제 해결. (0) | 2011.02.16 |
안드로이드 모델명 및 브랜드 이름 등 값 가져오기 (1) | 2011.02.15 |
안드로이드에서 Device의 고유값 알아보기 (0) | 2011.02.15 |
이미지 기본 상태와 Press 상태에 따라서 다른 효과 보여주도록 xml 파일 만들기 (0) | 2011.02.08 |