在android中包含进度条的菜单隐藏

在android中包含进度条的菜单隐藏,android,android-layout,android-widget,android-menu,android-progressbar,Android,Android Layout,Android Widget,Android Menu,Android Progressbar,嗨,我已经创建了一个用于下载和上传的活动。我使用了一个菜单(项目:下载、上传、删除、退出)。但当我按下下载按钮时,下载工作开始,但菜单按钮不会消失,直到任务完成。这将是令人沮丧的用户没有任何通知。如何在按下菜单后立即隐藏它,以及如何包含一个进度条,该进度条通知用户有关下载和上载任务 嗨,我有很多方法: void downloadFile(SmbFile file,String desPath) void downloadFolder(SmbFile folder,String tempSto

嗨,我已经创建了一个用于下载和上传的活动。我使用了一个菜单(项目:下载、上传、删除、退出)。但当我按下下载按钮时,下载工作开始,但菜单按钮不会消失,直到任务完成。这将是令人沮丧的用户没有任何通知。如何在按下菜单后立即隐藏它,以及如何包含一个进度条,该进度条通知用户有关下载和上载任务

嗨,我有很多方法:

 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;
}

 }

我认为您的UI被阻止,因为下载发生在UI线程中。因此,将下载过程移动到后台线程。它解决了您的问题。

因为您使用了两个不同类型的参数,所以您可以使用构造函数(或者对要传递的参数使用getter、setter):


注意:请仔细阅读以了解如何使用AsyncTask。

请使用thread或AsyncTask下载和上载任务。所以它不能挂起你的UI。你能解释一下这一行吗?我是android新手。你能通过添加另外4个函数来详细说明代码吗?
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...