如何在android中显示等待对话框

时间:2010-08-13 07:46:53

标签: android

我的任务很长,需要10/15秒。我想显示一个对话框,一个视图或其他东西让用户知道“嘿!我在为你工作。我90%”。

实际上我有3个布局:currentLayout,progressLayout和resultLayout。从主要活动我有这样的功能:

...
setContentView(R.layout.progressLayout );
SomeLongTask();
setContentView(R.layout.resultLayout);
...

但progressLayout从未显示过。

最好的方法是什么?

1 个答案:

答案 0 :(得分:4)

您正在用户界面线程中启动长任务。该线程还负责重绘UI并对输入事件进行操作。如果对长任务函数进行阻塞调用,则UI线程将忙于执行任务,并且用户界面无法更改。 Android系统甚至会认为您的应用程序崩溃了,因为它不再对用户输入作出反应。

您必须在AsyncTask中启动任务,并在doInBackground方法中执行所有繁重的工作,并在onPostExecute方法中更新UI。这样,UI线程将启动任务,然后返回更新界面并对用户事件进行操作。