2011-10-16 86 views
0

我的應用程序正在調用getReadableDatabase,但隨後出現'啓動超時已過期 - 放棄喚醒鎖定'。等待數據庫創建

根據Android的參考指南,它說不要從你的主線程進行這個調用,因爲它可能會很慢。我還沒有一個數據庫,所以onCreate大概忙於這樣做,這就是爲什麼我得到了時間?

但是,此時我沒有其他任何需要執行的操作,因此必須等待數據庫在可以繼續之前做好準備,那麼如何強制它等待getReadableDatabase完成從主線程?

或者是我的錯誤別的東西(這是它下面):只有約10秒後

10-16 16:00:30.800: INFO/DB Utils(279): In fetchList... 
10-16 16:00:39.505: WARN/ActivityManager(58): Launch timeout has expired, giving up wake lock! 
10-16 16:00:39.710: WARN/ActivityManager(58): Activity idle timeout for HistoryRecord{450bce18 co.uk.sanetech.wywh/.TripsScreenActivity} 
10-16 16:00:45.034: WARN/ActivityManager(58): Activity destroy timeout for HistoryRecord{44f47ce0 co.uk.sanetech.wywh/.WishYouWereHereActivity} 

超時情況 - 不知道這是正常的嗎?下面

代碼:

SQLiteDatabase db = this.dbHelper.getReadableDatabase(); 

    resList = db.query(tabName, null, null, null, null, null, ORDER_BY_LATEST); 

任何幫助深表感謝。

+0

通常寫文件(也是數據庫)很慢。奇怪的是,您必須等待20秒才能獲得可讀的數據庫。 –

回答

2

不過,我沒有別的我的應用程序在這一點上做的,它必須等待DB做好準備,纔可以繼續下去,所以我怎麼能強迫它等待getReadableDatabase從主線程完成?

你不知道。您在後臺線程上完成工作(包括打開/創建數據庫)。在您的用戶界面中,顯示一些信息以指示正在進行的工作(例如,標題欄中的ProgressBar,ProgressDialog,進度指示器)。工作完成後,更新您的用戶界面以反映可用數據。

+0

好的,謝謝 - 我會給它一個去... – Nelmo

+0

好吧,創建一個線程,但現在只是得到可怕的'空指針異常'和下面的堆棧跟蹤: – Nelmo