2011-09-06 116 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類構造函數來修復它。