0

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

我想在此方法执行时显示一个进度对话框。

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

我希望找到一个在显示活动后触发的事件,我在下面找到了一个,但在方法完成之前它仍然让屏幕保持黑色。

@Override public void onPostCreate(Bundle savedInstanceState)

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

谢谢

4

1 回答 1

0

在视图中放置一个进度条。

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

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

现在您可以在您的方法中执行此操作来更新进度条

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()
        }
    });
}
于 2011-08-01T10:49:20.940 回答