Android-进度对话框未关闭

Android-进度对话框未关闭,android,progressdialog,android-ui,runnable,Android,Progressdialog,Android Ui,Runnable,我有一个ListActivity类,当单击列表上的任何项目时,将显示一个新的活动。加载新活动需要时间,因此我希望用户知道发生了什么(以进度对话框的形式) 因此,为了做到这一点,我在我的类中实现了Runnable,如下所示- public class ProtocolListActivity extends ListActivity implements Runnable { private ProgressDialog progDialog; .... protected void onList

我有一个ListActivity类,当单击列表上的任何项目时,将显示一个新的活动。加载新活动需要时间,因此我希望用户知道发生了什么(以进度对话框的形式)

因此,为了做到这一点,我在我的类中实现了Runnable,如下所示-

public class ProtocolListActivity extends ListActivity implements Runnable {
private ProgressDialog progDialog;
....
protected void onListItemClick(ListView l, View v, int position, long id) {
                    progDialog.show(this, "Showing Data..", "please wait", true, false);

    Thread thread = new Thread(this);
    thread.start();
}
....
public void run() {
     // some code to start new activity based on which item the user has clicked.
}
最初,当我单击并加载新活动时,“进度”对话框运行良好,但当我关闭上一个活动(返回此列表)时,“进度”对话框仍在运行。我希望进度对话框仅在新活动开始时显示


有人可以指导我如何正确地做这件事吗

对话框需要由程序员明确删除(或由用户关闭)。因此,应该这样做:

在活动A中(调用活动)

尽管在大多数用例中,繁重的工作应该放在被调用方活动上。如果在被调用方的创建过程中,
完成了繁重的工作,则应如下所示:

活动B(被叫方):


无论如何,这个想法还是一样的

对话框需要由程序员明确删除(或由用户关闭)。因此,应该这样做:

在活动A中(调用活动)

尽管在大多数用例中,繁重的工作应该放在被调用方活动上。如果在被调用方的创建过程中,
完成了繁重的工作,则应如下所示:

活动B(被叫方):

无论如何,这个想法还是一样的

protected void onListItemClick(ListView l, View v, int position, long id) {
    progDialog.show(this, "Showing Data..", "please wait", true, false);

    Thread thread = new Thread(this){
        // Do heavy weight work

        // Activity prepared to fire

        progDialog.dismiss();
    };
    thread.start();
}
onCreate(){
    progDialog.show(this, "Showing Data..", "please wait", true, false);

    Thread thread = new Thread(this){
        // Do heavy weight work

        // UI ready

        progDialog.dismiss();
    };
    thread.start();
}