我设法显示一个ProgressDialog,但经过长时间运行后无法关闭它。
有谁知道这是怎么回事。
所有方法都直接在我的Activity的onCreate()下。
这是我的代码片段。
private final Handler updateHandler = new Handler() {
public void handleMessage(final Message msg) {
dismissWaitDialog();
};
public void showWaitDialog(String sTitle, String sMessage){
waitDialog=new ProgressDialog(this);
waitDialog.show(this, sTitle, sMessage);
}
public void dismissWaitDialog(){
waitDialog.dismiss();
}
public void longrunner(){
showWaitDialog("Please wait","Please wait");
new Thread() {
public void run() {
do something long
updateHandler .sendMessage(mymessageinit);
}
}.start();
}
最佳答案
您正在使用静态的show()
方法,该方法返回丢弃的ProgressDialog
实例。您关闭的对话框与显示的对话框不同。要解决,请更改:
waitDialog=new ProgressDialog(this);
waitDialog.show(this, sTitle, sMessage);
至
waitDialog = ProgressDialog.show(this, sTitle, sMessage);
正如其他人所提到的,
AsyncTask
实际上是执行此类操作的规范方法,而不是直接与Thread
一起使用。关于android - ProgressDialog未关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21598513/