0

Android C2DM を使用してアプリを開発しています。sqlite3 は私のバックエンドです。すべて正常に動作していますが、sqlite3 に関するパフォーマンスの問題が発生しています。だから私の質問は、「データベースコードを一度だけ実行される場所に配置できますか?つまり、dvm(dalvik仮想マシン)はデータベースに関連するコードを一度だけ実行する必要があります。データベースが作成されているため、連続実行中にdvmは(db)コードを通過しないはずです。

より具体的には、私のアプリは、私のアプリを持っているすべての電話にメッセージを送信します。そのため、クライアント エンドのアプリがメッセージを受信した場合、dvm は次のコードを実行するべきではありません: SQLiteDatabase db;

    //use tat ref to open or create a table 
    db = openOrCreateDatabase( "/data/data/de.vogella.android.c2dm.simpleclient/app_database/file__0/0000000000000001.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);

    try 
    {

        //initialsiging a query with all the table fields 
        final String CREATE_TABLE_CONTAIN = "CREATE TABLE IF NOT EXISTS tbl_Message4("
                + "id INTEGER PRIMARY KEY AUTOINCREMENT,"
                + "msg TEXT not null," 
                + "msg_time INTEGER not null,"
                + "msg_status INTEGER not null);";

        //execute the above query
        db.execSQL(CREATE_TABLE_CONTAIN); 

メッセージが来るたびに、このコードが実行されるためです。だから私はこれを避けたいです、私は私のメッセージを伝えたと思います。どんな助けでも大歓迎です。

ありがとう、

文盲

4

1 に答える 1

0

あなたが求めているのは、通常の(そして好ましい)使用例です。

Android には、まさにそれを行うためのクラスとメソッドがいくつかあります。

基本的に、DB を管理するヘルパー クラスを作成します。その中に SQLiteOpenHelper を拡張するクラスがあり、onCreate メソッドと onUpgrade メソッドをオーバーライドしてデータベースの作成とアップグレードを処理します。次に、レコードの追加/削除/更新など、DB に関連するすべての関数をヘルパー クラスでも処理するために (ヘルパー クラス内で SQLiteOpenHelper 拡張クラスの外に) 他のメソッドを作成するのが通常です。

いくつかの例とチュートリアルが浮かんでいます。良いものはここにあります。

幸運を

于 2012-05-14T06:10:01.833 に答える