有关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/