2011-09-06 160 views
0

在下面的代码:的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的有dialogshow和dialogdismiss在日志中显示之间8秒的差别,但我没有看到ProgressDialog出现在所有。后台操作不在UI线程中发生(这是一个AsyncTask),所以不应该是问题?

非常感谢ü

+0

AsyncTask <>的代码是什么样的?你在'onPreExecute'上做了很多工作吗? –

回答

3

尝试把你的ProgressDialog您的AsyncTask里面! 创建ProgressDialog,并显示在PreExecute。 在后台执行下载并关闭PostExecute中的ProgressDialog。

1

在这里的AsyncTask三种方法....

OnpreExecute您启动progressDialog,然后你的任务是在运行做背景 .. 完成背景的方法在做后onPostExecute法自称,然后解散你的对话框onPostExecute方法....

+0

好的复制/粘贴从我的答案:D嘿嘿,只是开玩笑:) –

+0

不,我从来没有复制粘贴我知道很好Asynctask和它是如何工作...........当我出席我的答案你回答首先,我不显示你的答案,我也在我的应用程序中添加aasync任务有互联网在后台下载图像,,,,,,,,,大部分的Java,.Net技术是使用这个基本的后台进程,,,好的.......... –

+2

冷静的家伙......我相信你知道这件事。但是我刚刚发布了我的答案,在你给他几乎相同的答案后5分钟。这并不重要,这就是为什么我添加了笑脸和“嘿嘿”。 并不意味着毁了你的一天。 –

0

如果你没有看到ProgressDialog,我想这是因为Context

你确定UBActivity.this是正确的Activity

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