亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android預置數據庫

Android預置數據庫

Helenr 2019-07-12 15:10:21
Android預置數據庫我正在開發一個Android應用程序,在用戶使用該應用程序之前,它需要在應用程序的數據庫中填充幾個條目(一個表,有1000-10000行)。我已經看過一些教程,我不確定做這件事的最佳方法。我是否應該在每次啟動應用程序時檢查數據庫是否存在,如果沒有數據庫,應該創建數據庫并插入我需要的數千條記錄嗎?還是有更好的方法來處理這個問題?理想情況下,它可以作為應用程序安裝過程的一部分,但我不確定這是否可行。如有任何反饋,將不勝感激。
查看完整描述

3 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

下面是一個如何創建和填充數據庫的例子,您可以在應用程序安裝上這樣做,這只會創建一個條目,盡管這樣做可能對您想要做的事情效率很低。

private static class settingsDatabaseHelper extends SQLiteOpenHelper{

    //SQL String for creating the table required
    private static final String CREATE_SETTINGS_TABLE    = "CREATE TABLE tbl_settings(" +
            "_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
            "VOIPUSERNAME TEXT," +
            "VOIPAUTHID TEXT," +
            "PASSWORD TEXT," +
            "VOIPDISPLAYNAME TEXT," +
            "SIPPROXYSERVER TEXT," +
            "SIPREGISTRAR TEXT," +
            "SIPREALM TEXT," +
            "EXPIRESTIME INTEGER);";    

    //constructor
    public settingsDatabaseHelper(Context context, String name,
            CursorFactory factory, int version) {
        super(context, name, factory, version);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_SETTINGS_TABLE);
         ContentValues initialValues = new ContentValues();
            initialValues.put("VOIPUSERNAME", "xxxxx");
            initialValues.put("VOIPAUTHID", "xxxxxxxxxx");
            initialValues.put("PASSWORD", "xxxxxx");
            initialValues.put("VOIPDISPLAYNAME", "xxxxxxxxx");
            initialValues.put("SIPPROXYSERVER", "xxxxxxxxxxxxx");
            initialValues.put("SIPREGISTRAR", "xxxxxxxxxxx");
            initialValues.put("SIPREALM", "xxxxxxxxxx");
            initialValues.put("EXPIRESTIME", xxxxxxxxxxx);
            Log.d("1.6", "gets to here");
            db.insert(SETTINGS_TABLE, null, initialValues);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to " +
                 newVersion + ", which will destroy all old data");

        db.execSQL("DROP TABLE IF EXISTS " + SETTINGS_TABLE);
        onCreate(db);

    } }//end helper class}


查看完整回答
反對 回復 2019-07-12
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

我現在要做的就是在資產文件夾中發布一個預先填充的數據庫。你可以在那里放進文件,然后按他們的原樣使用。但是,請注意,大小限制為1MB,因此您可能不得不拆分或壓縮文件。

壓縮非常方便,操作系統本身也很好地支持。

希望這會有幫助:)


查看完整回答
反對 回復 2019-07-12
  • 3 回答
  • 0 關注
  • 663 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號