Android ProgressDialog没有显示

时间:2011-09-06 13:01:49

标签: android progressdialog

在以下代码中:

Log.v("dialog", "dialogshow");
ProgressDialog dialog = ProgressDialog.show(UBActivity.this, "", "Loading calendar, please wait...",     true);

boolean res;
try {
    res = new Utils().new DownloadCalendarTask().execute().get();
} catch (InterruptedException e) {
    Log.v("downloadcalendar", "interruptedexecution : " + e.getLocalizedMessage());
    res = false;
} catch (ExecutionException e) {
    Log.v("downloadcalendar", "executionexception : " + e.getLocalizedMessage());
    res = false;
}
Log.v("dialog", "dialogdismiss");
dialog.dismiss();

根据logcat,在logshow和dialogdismiss之间有8秒的差异显示在日志中,但我没有看到ProgressDialog出现。后台操作不是在UI线程中发生的(它是AsyncTask),所以这不应该是问题吗?

非常感谢!你

3 个答案:

答案 0 :(得分:3)

尝试将ProgressDialog放入AsyncTask中: 创建ProgressDialog并在PreExecute中显示它。 在后台进行下载并在PostExecute中关闭ProgressDialog。

答案 1 :(得分:1)

在AsyncTask中有三种方法......

OnpreExecute 您启动progressDialog,然后您的任务在在后台执行中运行。 完成在后台执行方法后, onPostExecute 方法正在调用自身,然后关闭对话框onPostExecute方法....

答案 2 :(得分:0)

如果您没有看到ProgressDialog,我认为这是因为Context

您确定UBActivity.this是正确的Activity吗?

我遇到了完全相同的问题,并通过将Context传递给我的ASync类构造函数来修复它。