首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未显示主活动的onCreate中的进度对话框

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

Stack Overflow用户
提问于 2012-06-06 06:25:15
回答 3查看 6K关注 0票数 3

在闪屏之后,在主活动中加载onCreate内容大约需要6秒。因此,我想在加载时显示一个进度对话框,下面是我所做的:

代码语言:javascript
复制
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秒,然后加载主布局。我不知道我哪里做错了:*(

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-06 06:33:42

您需要在其他线程(而不是UI线程)中启动忙碌的代码。

在您的活动中,创建ProgressDialog并在线程中关闭它

代码语言:javascript
复制
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();
票数 3
EN

Stack Overflow用户

发布于 2012-06-06 06:36:13

这是因为你在UI线程上做了所有的事情,因此阻塞了它。

您应该在一个单独的线程中完成所有繁重的任务,并通过该线程更新进度对话框

票数 1
EN

Stack Overflow用户

发布于 2016-02-06 10:01:37

我在AndroidManifest.xml中将可调试标志更改为true。

代码语言:javascript
复制
android:icon="@drawable/icon" 
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:debuggable="true"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10905856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档