主要活动的onCreate中的进度对话框未显示

时间:2012-06-05 22:25:15

标签: android dialog progressdialog oncreate

在启动画面之后,加载主活动中的创建内容大约需要6秒。所以我想在加载时显示进度对话框,这就是我所做的:

import ...

private ProgressDialog mainProgress;

public void onCreate(Bundle davedInstanceState){
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    mProgress = new ProgressDialog (Main.this);
    mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    mProgress.setMessage("Loading... please wait");
    mProgress.setIndeterminate(false);
    mProgress.setMax(100);
    mProgress.setProgress(0);
    mProgress.show();

    ---some code---

    mProgress.setProgress(50);

    ---some code---

    mProgress.setProgress(100);
    mProgress.dismiss();
}

它不起作用...屏幕保持黑色5-6秒然后加载主布局。我不知道哪个部分做错了:*(

3 个答案:

答案 0 :(得分:3)

您需要在其他线程(比UI线程)中启动繁忙的代码 在您的活动中创建ProgressDialog并在线程中关闭它

mProgress = new ProgressDialog (Main.this);

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        // code that needs 6 seconds for execution

        // after finishing, close the progress bar
        mProgress.dismiss();
    }
};

new Thread(runnable).start();

答案 1 :(得分:1)

这是因为你正在UI线程上做所有事情,从而阻止它。

你应该在一个单独的线程中完成所有繁重工作并通过

更新进度对话框

答案 2 :(得分:0)

我在AndroidManifest.xml中将debuggable标志更改为true。

android:icon="@drawable/icon" 
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:debuggable="true"