gpt4 book ai didi

android - ProgressDialog 与 android 中的 AsyncTask 通信

转载 作者:行者123 更新时间:2023-11-30 04:38:32 27 4
gpt4 key购买 nike

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

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

换句话说,有什么方法可以告诉 asynctask progressdialog 已被取消。还是线程之间有消息等通信?

这是我的代码示例:

    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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com