2011-02-12 61 views
0

我正在嘗試構建一個簡單的應用程序,以便與Android握手,因爲我是新手。我已經在PHP和MySQL中編程了多年,所以對我來說這並不完全陌生,但是目前有一個概念讓我感到困惑。Android數據庫

如果我想用100個問題創建這個應用程序,我將如何創建這樣的數據庫。我的意思是我的應用程序運行並創建數據庫。我每次運行應用程序時都需要這樣做,因爲我猜測它是否更大,這意味着緩慢加載時間。 還是有一種方法來創建數據庫一次,然後當應用程序運行時不需要填充它。

最大

回答

1

步驟

I>當首次

樣本代碼被執行移動應用程序安裝Android移動應用&運行

II>創建數據庫&表:

sampleDB.openOrCreateDb(SplashScreen.this, DBConstants.DB_NAME, 
          MODE_PRIVATE, null); 

說明:

當移動應用程序第一次打開時,數據庫創建爲&已打開。 類似地,需要如下創建表格。

sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " + Constants.TABLE_NAME + " (Title VARCHAR, Description VARCHAR);"); 

從下次開始執行移動應用程序時,只有數據庫需要在已創建數據庫後才能打開。這同樣適用於表格。

你可以,如果你想,呈現出適當的消息progressdialog以指示正在執行後臺活動

0

它通常是你所描述的。 SQLite數據庫在第一次應用程序運行時被創建(並且可能被填充)。然後,您只需在隨後的運行中使用創建的數據庫。

0

嘗試創建一個擴展SQLLiteOpenHelper一類用戶在第一時間拋售100個問題 - 有一個名爲onCreate()方法,你可以重寫:

private class DBOpenHelper extends SQLiteOpenHelper { 

    public DBOpenHelper(Context context, String name, int version) { 
     super(context, name, null, version); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("create table ..."); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // nothing to do 
    } 

} 

然後,必須創建一個實現DatabaseHelper類,並在它的構造函數實例SQLLiteOpenHelper的子類,並調用establishDB()方法:

public final class StandardSQLLiteDatabaseHelper implements DatabaseHelper { 
    private SQLiteDatabase db; 
private final DBOpenHelper openHelper; 

StandardSQLLiteDatabaseHelper(final Context context) { 
    this.openHelper = new DBOpenHelper(context, "MSPC", 1); 
    if (db == null) { 
     db = this.openHelper.getWritableDatabase(); 
    } 
} 
}