doInBackground내부에서 다이얼로그의 텍스트를 바꾸기 위해
아래와 같은 코드를 추가했습니다.
runOnUiThread(new Runnable() {
@Override
public void run() {
mDlg.setMessage("카운트다운" + "(" + Count + "/" + Total + ")");
}
});
카운트다운(1/3)
이런식으로 출력을 하는데..
아주 간혹 Only the original thread that created a view hierarchy can touch its views.
에러가 발생합니다.
메인스레드가 아닌 곳에서 ui 변경을 할 경우 발생하는 에러라는 건 알겠는데,
thread안에서 setMessage했는데도 에러가 발생하네요..
doInBackground안에서 사용한 이유는, doInBackground에서
for문으로 params배열값 만큼 반복하기 때문에 count값을 변경하고자 한것이구요..
mDlg(다이얼로그)도 AsyncTask내부에서 사용하는 다이얼로그입니다.
아님 따로 핸들러를 사용해야 할까요?