Toast和ProgressDialog不会出现

时间:2012-06-17 14:43:25

标签: java android progressdialog toast

我想要做的是向用户提供有关工作进度和后台计算进度的信息(如“登录”,“检索文档”,“分析文档”等)。

只会显示艺术品,并且只有在完成所有工作后才会发生。我做错了什么,实现这个的正常方法是什么?

以下是说明问题的示例代码。在循环完成之前,Toast和ProgressDialog都不会显示:

ProgressDialog.show(this, "Working", "Performing calculation");

CharSequence text = "Performing calculation"; 
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, text, duration); 
toast.show();

for(int i = 0; i < 5000; i++) {
     Log.d("Debug", Integer.toString(i)); 
}

赞赏正确方向的任何一点。

2 个答案:

答案 0 :(得分:2)

您所描述的具有后台流程的方案,并且您希望向用户更新有关进度的方案应使用AsyncTask来处理,其中您有doInBackground()和{{1}等方法}。

答案 1 :(得分:1)

如果要执行后台操作,则应考虑使用AsyncTask或其他Thread来执行此操作。否则,您将阻止UI执行那些对最终用户来说难看的任务。看一下本教程:

http://www.vogella.com/articles/AndroidPerformance/article.html