我正在嘗試構建一個簡單的應用程序,以便與Android握手,因爲我是新手。我已經在PHP和MySQL中編程了多年,所以對我來說這並不完全陌生,但是目前有一個概念讓我感到困惑。Android數據庫
如果我想用100個問題創建這個應用程序,我將如何創建這樣的數據庫。我的意思是我的應用程序運行並創建數據庫。我每次運行應用程序時都需要這樣做,因爲我猜測它是否更大,這意味着緩慢加載時間。 還是有一種方法來創建數據庫一次,然後當應用程序運行時不需要填充它。
最大
我正在嘗試構建一個簡單的應用程序,以便與Android握手,因爲我是新手。我已經在PHP和MySQL中編程了多年,所以對我來說這並不完全陌生,但是目前有一個概念讓我感到困惑。Android數據庫
如果我想用100個問題創建這個應用程序,我將如何創建這樣的數據庫。我的意思是我的應用程序運行並創建數據庫。我每次運行應用程序時都需要這樣做,因爲我猜測它是否更大,這意味着緩慢加載時間。 還是有一種方法來創建數據庫一次,然後當應用程序運行時不需要填充它。
最大
步驟
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以指示正在執行後臺活動
它通常是你所描述的。 SQLite數據庫在第一次應用程序運行時被創建(並且可能被填充)。然後,您只需在隨後的運行中使用創建的數據庫。
嘗試創建一個擴展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();
}
}
}