[英]Progress dialog not showing while loading pictures
我必须将几张图片加载到主线程中,并且要在发生这种情况时显示一个加载对话框,但是以某种方式我无法显示进度对话框...
我的代码如下:
private ProgressDialog progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.background);
progress = ProgressDialog.show(this, "",getString(R.string.background_loading), true);
LoadBackgrounds loadB = new LoadBackgrounds();
new Thread(loadB).start();
}
public class LoadBackgrounds implements Runnable {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
loadPictures();
progress.dismiss();
}
});
}
}
必须在runOnUiThread
内部调用loadPictures()
因为它会修改视图。 那么,为什么在加载图片时不显示进度对话框?
我不确定100%,但这是我的猜测:
runOnUiThread()
将该线程与UIThread合并。 loadPictures()
可能会减慢UIThread的速度,这可能是您首先看不到进度对话框,并且在完成加载后便将其关闭的原因。 Skipped X frames! The application may be doing too much work on its main thread.
Skipped X frames! The application may be doing too much work on its main thread.
logcat输出中的消息。 我的建议取决于您的loadPictures()
方法的实际作用:使用AsyncTask,或者在访问服务器以获取图片时,检查Volley
或RetroFit
等库并使用它们获取数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.