如何在OnClickListener中检查线程是否已完成

时间:2012-03-30 16:35:39

标签: java android

我有一个OnClickListener,就像这个:

  submit.setOnClickListener(new OnClickListener() {
                if(connected) {

                         final ProgressDialog pd = ProgressDialog.show(this, "", "Please Wait..", true);


                         new Thread() {
                              public void run() {

                                //DOES SOME CALCULATION INSIDE HERE

                              pd.dismiss();  

                            }
                          }.start();

                         showPriceDialog(price); 
                }
                else
                    Toast.makeText(this, "No Network!", Toast.LENGTH_LONG).show();          
    });

我怎么知道线程已完成?我知道有一个函数isAlive(),如果我像这样构造我的线程,我可以使用它:Thread t = new Thread(); t.isAlive();但是我怎么知道我的线程是否还活着,我构建代码的方式是什么?我知道这可以通过使用AsyncTask来解决。

1 个答案:

答案 0 :(得分:1)

我不确定我是否按照你的要求为什么不这样做:

Thread t = new Thread() {
    public void run() {
        ...
    }
}
t.start();

或者您可以在线程中使用Activity的runOnUiThread():

new Thread() {
    public void run() {
        runOnUiThread(new Runnable() {
           public void run() {
              //set text here
           }
        });
    }
}

但说实话,这些都不比使用AsyncTask更好,我强烈建议你走这条路。

编辑此外,您将无法从单独的帖子中删除进度对话框。