0

我正在使用 android C2DM 开发一个应用程序。sqlite3 是我的后端。一切正常,但对 sqlite3 的性能问题感到震惊。所以我的问题是'我可以将数据库代码放在只执行一次的地方,即 dvm(dalvik 垂直机器)应该只执行一次与数据库有关的代码;在连续运行期间,dvm 不应通过 (db) 代码,因为已创建 db。

更具体地说,我的应用程序将 msg 发送到具有我的应用程序的所有手机。因此,当客户端的应用程序收到消息时,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); 

因为每次有 msg 来,这段代码都会被执行。所以我想避免这种情况,我想我已经传达了我的信息。任何帮助将不胜感激。

谢谢,

文盲

4

1 回答 1

0

您要问的是正常(和首选)的用例。

Android 有几个类和方法可以做到这一点。

您基本上创建了一个帮助程序类来管理数据库,其中将有一个扩展 SQLiteOpenHelper 的类,因为您覆盖了 onCreate 和 onUpgrade 方法来处理创建和升级数据库。然后创建其他方法(在帮助程序类中但在 SQLiteOpenHelper 扩展类之外)来处理与帮助程序类中的数据库相关的所有功能是正常的,例如添加/删除/更新记录。

有几个示例和教程随处可见。一个很好的在这里

祝你好运

于 2012-05-14T06:10:01.833 回答