我有一个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来解决。
答案 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更好,我强烈建议你走这条路。
编辑此外,您将无法从单独的帖子中删除进度对话框。