안녕하세요,
프로그레스바를 만들다가 궁금한 것이 있어 질문글 올립니다.
예제들을 보면 핸들러-스레드로 스레드 내부에서 자체적으로 for문등으로
1-100까지를 1초나 0.1초 슬립을 걸어 반복해서 프로그레스 진행을 하도록 되어있는데요..
특정 이벤트 발생[버튼을 누르는 등] 하는 위치에
Message send_progressbar = mHandler.obtainMessage();
send_progressbar.what = SHOW_PDLG;
send_progressbar.obj = dataCount; mHandler.sendMessage(send_progressbar);
로 핸들러를 동작하도록 했습니다. 현재 카운팅되어 증가하는 dataCount값을 갖고요..
case SHOW_PDLG:
int dataCount = (int)msg.obj;
pDlg.setProgress(dataCount);//시작
if(dataCount+1==data.length)
{
pDlg.dismiss();
}
break;
setMax로 최대 갯수는 데이터길이[length]만큼으로 설정했으며,
mHandler.sendMessage(send_progressbar);
가 호출 될 때마다 dataCount갯수도 달라지는데요, 이 갯수가 max값을 넘는 순간
종료하도록 만들었습니다. 일단 데이터 갯수와 dismiss되는 타이밍을 보니 값은 들어오는거같은데,
실질적으로 저 프로그레스바에 진행상황이 채워지려면 어떠한 방식으로 구현해야 하는지요..?
스레드를 사용해야 한다는데 스레드와 이 핸들러를 어떻게 연결해야 하는지..
+
SHOW_PDLG: <-해당 핸들러를 호출할 때마다
pDlg.setProgress(dataCount)를 추가해서 매번 받아오는 dataCount로 ui처리를 했습니다.
야매로 한거같은데..정석인 방법이 있거나 다른 방법이 있다면 키워드라도 알려주시면 감사하겠습니다..