在执行大型方法时在android中显示progressdialog

时间:2011-08-01 10:40:41

标签: java android progressdialog oncreate

我有一个在onCreate期间调用的长时间运行方法,此方法填充文本视图以便与UI交互,并且可以更新70个标签(大约3-20秒,具体取决于设备)。

我希望在此方法执行时显示progressdialog。

理想情况下,一旦显示了Activity并显示了进度,我想在UI线程上触发我的方法,这是我不能做的,在方法完成之前,Activity不会绘制。

我希望找到一个在活动显示后被触发的事件,我找到了下面的那个,但是在方法结束之前它仍然会留下黑屏。

@覆盖 public void onPostCreate(Bundle savedInstanceState)

我通常是WP7开发人员,在.NET中你为onLoadComplete添加一个事件处理程序,在显示ui之后触发,但在用户有机会与UI交互之前,我该如何在Android JAVA中执行此操作?

由于

1 个答案:

答案 0 :(得分:0)

在视图中放入ProgressBar。

然后在onCreate()或onResume()方法中执行以下操作:

new Thread() {
    public void run() {
        yourLargeMethod();
    }
}.start();

现在,您可以在方法中执行此操作以更新progressBar

public void yourLargeMethod() {
// doSomething
...

runOnUiThread(new Runnable() {
        public void run() {
            // update the progress from the thread
            progressBar.setProgress(x); // x is your progress, 0 <= x <= progressBar.getMax()
        }
    });
}