来自非MainActivity类的Android ProgressDialog用法

时间:2014-11-03 06:17:20

标签: java android android-asynctask

我有一个使用DownloadPicture方法的类正在执行AsyncTask。该类不是class MainActivity extends Activity的子类。如何使用DownloadPicture方法显示ProgressDialogs?我想我可以将MainActivity.this传递给类conatructor,但还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

请尝试这种方式,希望这有助于您解决问题。

将您的活动上下文传递给构造函数中的DownloadPicture类,并在onPreExecute()中初始化ProgressDialogs:

public class ProgressDialogs extends AsyncTask<Void,Void,Void>{

    private Context context;
    private ProgressDialog progressDialog;
    public ProgressDialogs(Context context){
        this.context=context;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        progressDialog = ProgressDialog.show(context, "dialog title","dialog message", true);

    }

    @Override
    protected Void doInBackground(Void... params) {
        // do you background code here
        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
        if(progressDialog!=null && progressDialog.isShowing()){
            progressDialog.dismiss();
        }
    }
}

答案 1 :(得分:0)

使用Interface从AsyncTask回调活动。你可以从你的活动中使用ProgressDialog做任何事情。可以详细解释是否可以提供代码示例。