ProgressDialog不会立即显示

时间:2012-03-09 15:13:26

标签: android bitmap handler progressdialog fragment

我有一个带有一些按钮的片段,当点击一个按钮时,它应该显示一个ProgressDialog,加载一个位图数组并在图库的片段中显示它,解除ProgressDialog。

但是ProgressDialog没有立即显示,它需要1到2秒的时间,它只是在我的画廊展示时闪烁。

点击后我这样做:

try{
    progress = ProgressDialog.show(activity, "", "Loading images", true);

    //load images
    //show gallery

}catch(){
    //...
}finally{
    handler.sendEmptyMessage(0);
}

onCreate的我的处理程序:

handler = new Handler() {
    public void handleMessage(Message msg) {
         progress.dismiss();
    }
};

我正在使用Android 3.1

Logcat显示任何内容:(

03-09 13:17:32.310: D/DEBUG(5695): before show()
03-09 13:17:32.350: D/DEBUG(5695): after show()

2 个答案:

答案 0 :(得分:1)

文档没有说明setIndeterminate(boolean),所以我不确定。但我在我的应用程序中使用它,它可以工作:

ProgressDialog fDialog = new ProgressDialog(your-context);
fDialog.setMessage(your-message);
fDialog.setIndeterminate(true);
// fDialog.setCancelable(cancelable);
fDialog.show();

你能尝试吗?

答案 1 :(得分:1)

您正在主UI线程上加载图片 - 您应该在后台进程中执行此操作,因为它可能会导致您的用户界面无响应(并导致您的ProgressDialog在错误的时间出现。)< / p>

您应该考虑使用AsyncTask来在后台加载图片。

ProgressDialog中显示AsyncTask.onPreExecute,在AsyncTask.doInBackground中加载图片并关闭AsyncTask.onPostExecute中的对话框。