android - 如何添加进度对话框

标签 android android-asynctask progressdialog

我正在从 Dropbox 下载一个文件,这需要几秒钟的时间。我想为下载添加一个 ProgressDialog,但我不知道该怎么做。

public class DownloadFile extends AsyncTask<Void, Long, Boolean> {
    DownloadFile(Context context ,DropboxAPI<?> mApi ,String dropboxpath,String   sdpath,int pos,int s,ArrayList<String> folder) throws DropboxException {
        FileOutputStream mFos;
        File file=new File(sdpath);
        String path = dropboxpath;
        try{
            mFos = new FileOutputStream(file);
            mApi.getFile(path, null, mFos, null);
        }catch (Exception e) {
            // TODO: handle exception
        }
    } 

    @Override
    protected Boolean doInBackground(Void... params) {
        // TODO Auto-generated method stub
        return null;
    }   
}

最佳答案

这样做:

public final class DownloadFile extends AsyncTask<Void, Long, Boolean> {

private Context context;
private ProgressDialog progressDialog;

public DownloadFile (Context context) {
    this.context = context;
}

/* 
 * @see android.os.AsyncTask#onPreExecute()
 */
@Override
protected void onPreExecute() {
    try {
        progressDialog = ProgressDialog.show(context, "", "message", true);
    } catch (final Throwable th) {
        //TODO
    }
}

/* 
 * @see android.os.AsyncTask#doInBackground(Params[])
 */
@Override
protected Boolean doInBackground(Void... arg0) {
    //do something
}

    @Override
protected void onProgressUpdate(String... progress) {
    //do something
    super.onProgressUpdate(progress);
}

/* 
 * @see android.os.AsyncTask#onPostExecute(java.lang.Object)
 */
@Override
protected void onPostExecute(Boolean result) {
    progressDialog.dismiss();
} }

关于android - 如何添加进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339847/

相关文章:

android - 关于AsyncTask的一些问题

android - 如果 AsyncTask 需要时间,则显示 ProgressDialog

android - 使用 AppCompat 的 ActionBar 下方的不确定水平 ProgressBar?

java - 解析 HTML(安卓)

android - 自定义基础适配器和异步错误

android - 在主线程中处理某些代码时如何显示进度对话框(在单独的线程中?)

android - 登录 Android 应用程序时的 Facebook 进度对话框微调器

android - 如何在 android studio 中的每次更改中从范围 slider 中获取值(value)?

java - Android Activity 接口(interface)到 Fragments : try/catch blocks vs. instanceof 检查

java - 使用 AsyncTask 进行多项操作