각 다운로드는 자체 스레드에서 실행해야합니다 (하나의 파일이 더 작은 경우, 하나의 서버가 더 빠른 경우 등).
다운로드를 위해 URI 또는 다른 식별자로 매개 변수화 된 스레드를 확장하거나 실행 파일을 생성 해보십시오. 일단 그렇게하면 완료 될 때까지 실행할 두 개의 스레드를 호출 할 수 있습니다. UI (진행률 표시 줄)를 업데이트해야하는 경우 처리기를 구현하고 스레드에서 처리기로 메시지를 보내야합니다. 예 : 주요 활동 클래스의
:
이
public static final int UPDATE_PROGRESS_BAR =0;
public final Handler uiHander = new Handler(){
public void handleMessage(Message msg){
switch(msg.what){
case UPDATE_PROGRESS_BAR: // Something like this to handle the case of progress bar update
int updateAmount = msg.obj;
// do something to update prog. bar
break;
다음 스레드가 그냥 메시지를 보낼에,이 핸들러에 대한 참조가 필요합니다은
uiHander.obtainMessage(<activity name>.UPDATE_PROGRESS_BAR,<integer update>).sendToTarget();
이것은 대부분의 휴대용 방법이 될 수 있습니다 비동기 작업 구현으로 버전을 버전으로 변경했으며 두 다운로드를 동시에 실행할 수도 있고하지 않을 수도 있습니다 (분명히 원하는 것임)
실제로 사용자에게 진행 상황을 보여줄 필요가있을 때만 'ProgressDialog'에서'show'를 호출하는 것을 제외하고는 찾은 예제를 따르지 않는 것이 어떻습니까? – iagreen
나는 그것을 실제로 시도했다. 파일 다운로드가 완료되지 않은 경우 AsyncTask에 선언 된 progressBar에 show 메서드를 호출합니다.하지만이 방법은 작동하지 않습니다. 당신이 의미하는 바를 코드 스 니펫으로 도울 수 있습니까? 고마워요. – sampath