在闪屏之后,在主活动中加载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秒,然后加载主布局。我不知道我哪里做错了:*(
发布于 2012-06-06 06:33:42
您需要在其他线程(而不是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();发布于 2012-06-06 06:36:13
这是因为你在UI线程上做了所有的事情,因此阻塞了它。
您应该在一个单独的线程中完成所有繁重的任务,并通过该线程更新进度对话框
发布于 2016-02-06 10:01:37
我在AndroidManifest.xml中将可调试标志更改为true。
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:debuggable="true"https://stackoverflow.com/questions/10905856
复制相似问题