我想在计算某些东西时将ProgressDialog放在我的程序上。我尝试了很多东西,但是其中任何一个都有帮助我。这是我的代码;
dialog=ProgressDialog.show(this, "calculating", "Please wait while the calculation is getting done.",true);
this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
changeHelp = 0;
if(screenNumber == 1){
compareImages(3.3, 0.12);
}
else if(screenNumber==2 || screenNumber == 4){
compareImages(1.4, 0.1);
}
else if ( screenNumber == 3)
compareImages(0.41, 0.1);
else
compareImages(3.3, 0.0676);
dialog.dismiss();
screenNumber++; }
});
关于这个问题有很多问题。虽然我尝试了很多,但是我无法解决问题。我不想使用asynctask.Pls帮助我。
---- ----编辑
我在try中添加了thread.sleep(2000),但它仍然无法正常工作。我认为在使用dialog.dismiss时我做错了但是却无法找到问题所在?
答案 0 :(得分:0)
我认为您的ProgressDialog
已经展示了很长一段时间,因为您的任务不会持续至少第二次,但很快就会更多。
如果你想实现你的目标,更好的方法是使用AsyncTask
,是的你不想使用它但是为了你的目标AsyncTask我认为你可以使用最好的方法。
但作为解决方案解决方案,方法Thread.sleep()
用于模拟“将持续”更长时间的某些任务。但是你需要从backround Thread调用(以避免UI冻结)。对话的进展可以从任何类型的线程中解除。