2010-08-13 50 views
0

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

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

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

但progressLayout永远不会显示。

这样做的最好方法是什么?

回答

4

您正在开始用户界面主题中的长任务。此线程还负责重新绘制UI并对输入事件进行操作。如果您对长任务功能进行阻塞呼叫,则您的UI线程将忙于执行该任务,并且用户界面无法更改。 Android系统甚至会认为你的应用程序崩溃了,因为它不再对用户输入做出反应。

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

+0

非常有用!谢谢。 – Redax 2010-08-13 13:31:15