我想要做的是给用户提供关于在后台执行工作和计算过程中的进度的信息(如“登录”、“检索文档”、“分析文档”等)。
所发生的只是一件艺术作品被展示出来,而且只有在所有的作品完成之后。我做错了什么,实现它的正常方法是什么?
下面是说明该问题的示例代码。在循环完成之前,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));
}在正确的方向上的任何要点都是值得赞赏的。
发布于 2012-06-17 23:00:57
如果您想要执行后台操作,则应考虑使用AsyncTask或其他Thread来执行此工作。否则,您将阻止UI执行那些对最终用户来说很难看的任务。请看一下本教程:
http://www.vogella.com/articles/AndroidPerformance/article.html
发布于 2012-06-17 23:01:58
您描述的场景中,您有一个后台进程,并且您想要向用户更新进度,应该使用AsyncTask来处理,其中您有doInBackground()和onProgressUpdate()这样的方法。
https://stackoverflow.com/questions/11072143
复制相似问题