안드로이드 개발 질문/답변
(글 수 45,052)
버튼을 클릭해서 아래의 메소드를 불러 10,9, 8, 7 ... 0을 TextView에 뿌리려 합니다.
이상한건.. 아래 소스에 주석 처리 되어있지만.. Log.i 로 하면 잘 실행 됩니다. 이걸.. TextView 뿌리려 하면 에러가 발생합니다.
이유를 모르겠습니다.
고수님들 한번 봐주세요~!
private void countStart() {
final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
int i = 10;//10초
public void run() {
//Log.i("Time",""+i);
txtCountTimer.setText("time : "+ i );
i--;
if (i< 0)
timer.cancel();
}
}, 0, 1000);
}
## 에러 내용## 10-26 14:16:36.956: ERROR/AndroidRuntime(2732): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.




setText와 같은 UI 변경 메소드들은 내부 UI Thread를 제외한 다른 Thread에서 사용할 경우
첨부하신 것과 같은 오류가 생겨요.
setText를 쓰레드 안에서 말고 Handler를 통해서 써보시길 바랍니다...