私はアンドロイド用のキーボードアプリを書いています。私はSQL DBの文字列キー値です。SQLの方法がAndroidで遅すぎる...どうすればそれをスピードアップできますか?
ここでは、1つのキーの行の例を示します。 DB全体には、およそ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秒かかります。任意のアイデアをどのようにスピードアップするには?
ユーザーがキー値を変更できる必要があるため、アプリ内にキー値を保存できません。
ありがとうございます!
うん...何かが間違っているようです。 SQLは通常、これほど長い時間がかかりません。どのような作業がここで行われていますか? –
あなたはそれが(そうした)長い時間を要するクエリだと確信していますか?エミュレータ上でさえ、20秒は普通の状態を超えているようです...カーソルループで非常に単純なログ出力を試しましたか?これを実際のデバイスでテストしましたか? –
さて、それはまた、ベクトルフォームなどのボタンを描画しますが、私はすでに読み込まれたレイアウトを切り替えているように、瞬時に表示されるので、時間がかかりません。 – Roger