2011-08-30 17 views
0

我有一個Activity,它顯示基於從MySQL服務器提取的數據的文本。問題是Activity將不會加載,直到數據被拉出,有時需要很長的時間甚至根本不加載,同時用戶會看到黑屏。直到從MySQL服務器提取數據爲止,活動纔會開始

我試圖通過從服務器獲取數據到服務的任務,但它也等待拉取數據,然後才顯示Activity的佈局。

我也嘗試使用固定文本進行活動,然後調用Activity從服務器中獲取數據,但程序仍在等待數據。

你能想出一個創造性的解決方案嗎?或者可能是一個非創造性的:)

回答

0

你需要在另一個線程內做到這一點。嘗試使用AsyncTask類。

0

延遲可能是由於調用獲取主線程(也稱爲UI線程)上正在完成的數據。需要花費大量時間的流程,我的意思是即使是一兩秒鐘也應該在一條獨立的線程中完成。 Android提供了一個名爲AsyncTask的類來幫助使線程無痛苦。

0

你提到你嘗試了一個服務,但你看看IntentService嗎? (不能鏈接它,但它在d.android.com。)我喜歡使用它們來完成這些類型的任務,因爲它們爲你處理線程(比如AsyncTask),它更好地分離了關注點。然後,IntentService發送一條廣播消息,表示該數據可用或不可用。將數據本地存儲在sqlite數據庫中或作爲json/xml文件存儲。