0

안녕하세요 저는 다운로드 및 업로드에 사용되는 활동을 만들었습니다. 메뉴 (항목 : 다운로드, 업로드, 삭제, 종료)를 사용했습니다. 그러나 다운로드 버튼을 누르면 다운로드 작업이 시작되지만이 작업이 완료 될 때까지 메뉴 버튼이 사라지지 않습니다. 사용자에게 아무런 통보없이 절망적 일 것입니다. 메뉴를 잠근 후 바로 숨기는 방법과 다운로드 및 업로드 작업과 관련하여 사용자에게 알리는 진행률 표시 줄을 포함시키는 방법. 다운로드 때문에안 드 로이드의 진행률 막대를 포함하는 메뉴 숨기기

void downloadFile(SmbFile file,String desPath) 
void downloadFolder(SmbFile folder,String tempStore) 
void uploadFile(File file,SmbFile destination) 
void uploadFolder(File f,SmbFile destination) 

비동기 작업을 확장 아래 코드에서이 방법을 추가하는 방법을 가르쳐주세요 ...

class helper extends AsyncTask 
{ 

@Override 
protected Object doInBackground(Object... arg0) { 
    // TODO Auto-generated method stub 
    return null; 
} 

} 
+0

스레드 또는 Asynctask를 사용하여 작업을 다운로드하고 업로드하십시오. 따라서 UI가 중단 될 수는 없습니다. –

+0

pls 내 편집 된 질문보기 – ram

답변

1

은 2 개 차 유형 매개 변수를 사용하므로 생성자를 사용 (또는 전달할 매개 변수에 대한 게터, 세터를 사용) 할 수 있기 때문에 : 다운로드 메뉴 인 경우

public class Helper extends AsyncTask<Integer, Void, Void> { 

//The filed you want to pass 
private SmbFile file; 
private String desPath; 
private SmbFile folder; 
private String tempStore; 
private File file; 
private SmbFile destination; 

//Create setter 

public void setFile(SmbFile file) { 
    this.file = file; 
} 

public void setDesPath(String desPath) { 
    this.desPath = desPath; 
} 

public void setFolder(SmbFile folder) { 
    this.folder = folder; 
} 

public void setTempStore(String tempStore) { 
    this.tempStore = tempStore; 
} 

public void setFile(File file) { 
    this.file = file; 
} 


public void setDestination(SmbFile destination) { 
    this.destination = destination; 
} 


@Override 
protected Void doInBackground(Integer... params) { 
    //check flag to excute exactly method 
    switch (params[0]) { 
    case 0: 
        //Call your download file method 
     downloadFile(file,desPath); 
     break; 
    case 1: 
        //Call your download folder method 
     downloadFolder(folder,tempStore); 
    //etc... 
    default: 
     break; 
    } 
    return null; 
} 

}

프레스, 당신이 호출 할 수있는 비동기 작업 :

//Download the file 
Helper helper = new Helper(); 
//set file and des path for download file 
helper.setFile(your_file); 
helper.setDesPath(your_despath); 
//Excute the download file method 
helper.excute(0); 

//Download the folder 
//set file and des path for download file 
helper.setFolder(your_folder); 
helper.setTempStore(your_tempStore); 
//Excute the download folder method 
helper.excute(1); 

//etc... 

: 언더주의 깊게 this link을 읽어 보시기 바랍니다 AsyncTask를 사용하는 방법.

+0

이 줄을 설명 할 수 있습니까? AsyncTask ? – ram

+0

그리고 나는 안드로이드에 처음입니다. pls는 다른 4 가지 기능을 추가하여 코드를 정교 할 수 있습니까? – ram

+0

@ram 답변을 업데이트했습니다. 확인해주십시오. – R4j

0

내가 당신의 당신의 UI가 차단 된 생각 :

안녕하세요 방법이 UI 스레드에서 발생합니다. 다운로드 프로세스를 백그라운드 스레드로 옮기십시오. 그것은 당신의 문제를 해결합니다.

+0

pls 내 편집 된 질문보기 ... – ram

관련 문제