여기 질답 게시판에도 저와 같은 문제를 겪는 분이 있으셨는데요. 해결하셨는지...는 모르겠지만요.
http://www.androidpub.com/645348 외 몇분... 검색 키워드 "반영"  로 몇분 계시네요 ㅎㅎㅎㅎㅎ


public static NextPlace() 라는 메서드 안에서..디비 읽어 오고.. 읽어온 값들로
화면에 있는 UI 콘트롤들의 문자...색상...등등을 변경합니다. 변경하고...
TTS 를 호출합니다.

하지만..TTS 가 먼저 실행되고..UI 업뎃은 TTS 호출이 종료된 이후에 완료되더군요.
물론...이해는 합니다. TTS 호출이 아직 NextPlace 메서드 안에 있고..
다시 말해서 NextPlace 의 실행이 종료되지 않았으니...UI 도 업뎃을 안하고 있었겠죠...

그래서..UI 업뎃을 강제로.. hanlder 등을 이용해서 해야 한다는 글들이 있는데요.
잘 안되더라구요.

4~5일 문제를 못풀다가...
안드로이드에서는 쓰레드를 어떻게 쓰나..보려고... 류종택 님의 강좌를 보게 되었습니다.

코드를 보자...바로 아이디어를 얻었죠.. 내가..왜 UI 를 자꾸 업뎃하려는 고정관념을 갖고 있었지???


CallMyTTS() 를 쓰레드로 실행해도 되잖아...라는 생각이 든거죠..
바로 실행에 옮겼죠.. 아래와 같이...

public static NextPlace()
{
    ............ 디비에서 몇개 레코드 읽어옴...
    RadioButton.settext(......);
    .............읽어온 텍스트로 화면 상의 콘트롤 색상 텍스트 등등 변경 작업 등등....


 
  // CallMyTTS();   
  (new ThreadTTS()).start();

}

class ThreadTTS extends Thread {
   public void run() {
         CallMyTTS();
   }
}



고정관념이라는게 역시 무섭다라는 것을 또한번 느낀 하루였습니다.


그럼, 즐거운 코딩하세요. 이글이 누군가에게도 도움이 되기를 빌면서~~~