안녕하세요.
AsyncTask로 최소 한 번~20번 정도로 다이얼로그 ui를 바꾸는 작업을 하고있습니다.
현재 구조는
onPreExecute에서 해당 다이얼로그를 선언 및 기본문구 셋팅,
doInBackground에서 for문으로 1에서 20번 정도[가변적임] 반복합니다.
onPostExecute에서는 마무리를 하구요.
원래 doInBackground에서 ui를 변환하면 안된다는걸 아는데...
5.0이상에서 doInBackground내부에서 강제로 다음과 같이 스레드를 돌리면 이상이 없는데,
runOnUiThread(new Runnable() {
public void run() {
mDlg.setMessage(출력할내용);
}
});
4.4.2와 같은 킷캣에서는 메인스레드 오류가 발생합니다.
os버전차이때문에 그런건지 몰라도..사실 강제로 스레드를 돌리는 것도 불안정해보여서
방법을 개선하려고 하는데요.
doInBackground에서 n번 반복하지 말고, asynkTask를 n번 반복해야할까요..?
현재:onpre - doin[n번반복] - onpost로 끝
=>다이얼로그 dismiss 없이 매끄럽게(?) 반복되어서 사용중.
수정:onpre - doin - onpost =>n번 반복.
=>이렇게 수정하면 문제는 없겠지만, 반복할 경우 다이얼로그 열고닫힘이 보여서
다이얼로그 ui를 어떻게 해야할지 궁금.
조언 좀 주시면 감사하겠습니다..