2つの差分型パラメーターを使用するため、コンストラクターを使用できます(または、渡すパラメーターにgetter、setterを使用します)。
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...
注: AsyncTaskの使用方法を理解するには、このリンクを注意深くお読みください。