有关ProgressDialog如何与asyncTask通信的提示或想法。
例如,当我单击该按钮时,该程序将验证对Internet的输入,这不应被中断。所以我使用ProgressDialog。

在progressDialog.dismiss()之后,我需要通过调用asyncTask刷新视图。
我尝试了一些方法,但失败了,例如
*我在progressdialog.dismiss()之后执行asynTask。
*在进度对话框线程之后将执行asynctask放在对话框中。

换句话说,有没有办法告诉asynctask进度对话框已被关闭。还是线程之间存在诸如消息之类的通信?

这是我的代码示例:

    btnPost.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            stockProgressDialog = ProgressDialog.show(PostActivity.this,
                    "Please wait...", "Check the post");
            new Thread() {
            public void run() {
            try{
                /* Connect to Internet API */
                    stockProgressDialog.dismiss();
            } catch (Exception e) { }
            // Dismiss the Dialog
            }
            }.start();
            new LookUpTask().execute();
        }
    });

最佳答案

是的,有一种方法可以告诉asyncTask ProgressDialog已关闭。您可以使用一个onDismissListener

    @Override
public Dialog onCreateDialog(int id){
    if(id==DIALOG_PROGRESS_DIALOG){
        stockProgressDialog = new ProgressDialog(Main.this);
        stockProgressDialog.setTitle("Please wait...");
        stockProgressDialog.setMessage("Check the post");
        stockProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                textView.setText("Waiting the 5 secs...");
                myAsyncTask.execute("start it");
                //Or myAsyncTask.cancel(true); if you want to interrupt your asyncTask
            }
        });
        return stockProgressDialog;
    } else return super.onCreateDialog(id);
}

关于android - ProgressDialog与android中的AsyncTask通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6418602/

10-12 03:38