마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

핸들러로 프로그레스바 만들기..

0 추천

안녕하세요, 

프로그레스바를 만들다가 궁금한 것이 있어 질문글 올립니다.

예제들을 보면 핸들러-스레드로 스레드 내부에서 자체적으로 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처리를 했습니다.

야매로 한거같은데..정석인 방법이 있거나 다른 방법이 있다면 키워드라도 알려주시면 감사하겠습니다..

 

 

망고사탕 (5,000 포인트) 님이 2015년 11월 2일 질문
망고사탕님이 2015년 11월 2일 수정

1개의 답변

0 추천
AsyncTask를 사용해 보세요.. 굳이 핸들러 스레드를 사용하지 않고 편하게 처리하실 수 있습니다.
mcsong (44,040 포인트) 님이 2015년 11월 3일 답변
...