2011-10-14 41 views
1

我正在爲android編寫鍵盤應用程序,而我是SQL DB中的字符串鍵值。Android中的SQL方式太慢...我如何加快速度?

下面是一個鍵的示例行。在整個數據庫中,我有大約160個這樣的行。

(BTNID,TEXTADJUST,BUTTONSCALE,BUTTONSCALECNT,SPACINGLR,SPACINGTB,BTNOPA,BTNTEXT,BTNTEXTONCLICK,BTNTEXTONSHIFTCLICK,BTNTEXTCOLOR,BTNHUE,BTNSAT,LAYOUTSTDALTNUM,ATROW,BTNHUEHIT) VALUES('1','0','1','1','2','5','255','Q','qQ','Qq','0xFFFFFFFF','0','0','STD','1','0') 

我被

TBL_NAME = preferences.getString("TBL", "EnglishZLayout"); 

     SqlHelper sqlHelper = new SqlHelper(this, "TK.db", null, 1); 
     SQLiteDatabase DB = sqlHelper.getReadableDatabase(); 

     String TBL_NAME_BTN = TBL_NAME.replace("ZLayout", "ZButtons"); 
     Cursor c = DB.rawQuery("SELECT * FROM "+TBL_NAME_BTN, null); 

     c.moveToFirst(); 
     while (c.isAfterLast() == false) { 
      ... 

閱讀本價值觀和奇怪的是,大約需要20-30秒加載。任何想法如何加快它?

我無法在應用程序中存儲關鍵值,因爲用戶必須能夠更改它們。

謝謝!

+1

嗯......有些東西似乎是錯的。 SQL通常不需要這麼長時間。這裏正在做什麼工作? –

+0

你確定它(僅)需要這麼長時間的查詢嗎? 20秒似乎超出了常規,甚至在模擬器上......你是否在遊標循環中嘗試了(僅)非常簡單的日誌輸出,並在真實設備上測試了這一點? –

+0

好吧,它也繪製矢量形式的按鈕等,但它不需要很長時間,因爲我正在切換已經加載的佈局時,它們會立即出現。 – Roger

回答

1

每次執行查詢時都不重新創建DB助手,對嗎?在應用程序啓動時執行一次。

0

要打開我的評論爲「答案」爲別人誰可能會發現這個帖子:

  • 嘗試不實際的按鈕繪製代碼迴路......你可能會看到SQL不問題