2010-08-16 3 views
2

나는 listview를 사용하여 다운로드 관리자를 만들고 진행 상황에 따라 다운로드 한 현재 버전을 표시합니다. 진행률 막대를 어떻게 업데이트 할 수 있습니까?runOnUIThread 질문

예를 들면. 나는 3 개의 클래스가있다.

"main.class"=는 목록보기입니다.

"mAdapter.class"=는 ArrayAdapter를 확장합니다.

"mThread.class"= Runpleable을 구현하여 다운로드를 시작합니다.

Google이 있는데 목록보기를 업데이트하거나 UI를 다시 그리려면 runOnUIThread을 사용해야합니다. 그러나 나는 어떻게이 3 개의 클래스를 결합 할 수 있습니까? 나는 시도했다

mThread.start(){ 
    main.runOnUIThread(updated); 
} 
private updated = new Runnable(){ 
    mAdapter.progressbar.setProgress(downloaded); 
} 

나는이 2 개의 방법을 "mThread.class"에 넣었다. 하지만 작동하지 않습니다. 내가 실수 한 것을 알 수 있겠습니까?

P/S : 추악한 코드와 나쁜 영어에 대해 사과합니다. 너희들이 내가 무슨 말하는지 이해하기를 바란다. 감사합니다

답변

1

당신은 AsyncTask를 사용해야합니다. 설명 및 예는 the docs을 참조하십시오.

+0

안녕하세요 콘스탄틴, 답장을 보내 주셔서 감사합니다. 전에이 방법을 봤어. 그러나 나는 그것을 어떻게 사용하는지 정말로 모른다. 예를 들어 3 개의 매개 변수 AsyncTask < "param1", "param2", "param3">. "param1"과 "param2"에 무엇을 넣어야합니까? 다운로드를위한 스레드? "param3"은 내가 얻은 결과를 넣는 것입니까? 그리고 그 4 단계를 사용하는 방법? 내 영어와 어리석은 질문에 대해 유감이다. 귀하의 회신을 부탁드립니다. – WynixToo

+1

안녕하세요, AsyncTask에 대한 더 나은 안내입니다. 주석과 함께 꽤 좋은 코드 예제가 들어 있습니다. http://www.screaming-penguin.com/node/7746 –

+0

안녕하세요, 답장을 보내 주시면 죄송합니다. 나는 그것을 시도했지만 내 시니어는 AsyncTask를 사용해서는 안된다고 말했다. 그것은 핸들 메시지와 runOnUIThread를 사용합니다. 그것은 사실입니까? – WynixToo