我在Android中看到了onCreate和onOpen方法與SQLite數據庫管理之間的很多聯繫。在Android庫中創建SQLite數據庫
我是一名iOS開發人員,我試圖「翻譯」(可以這麼說)我的可可庫,以便它可以在Android上使用。我需要在運行時創建一個SQLite數據庫。我沒有活動 - 因爲這是我創建的圖書館。看來我不能創建一個沒有活動的數據庫,這是正確的嗎?
我在Android中看到了onCreate和onOpen方法與SQLite數據庫管理之間的很多聯繫。在Android庫中創建SQLite數據庫
我是一名iOS開發人員,我試圖「翻譯」(可以這麼說)我的可可庫,以便它可以在Android上使用。我需要在運行時創建一個SQLite數據庫。我沒有活動 - 因爲這是我創建的圖書館。看來我不能創建一個沒有活動的數據庫,這是正確的嗎?
要創建的SQLite數據庫,你不要基本上需要在library.it的活動需要一個背景 !!, 您可以在庫/類中的方法,基本上採取輸入/參數的上下文和創建數據庫。
此上下文可以從應用程序活動或服務或接收器傳遞。
我不明白爲什麼你應該無法在沒有活動的情況下打開數據庫。你需要擴展SQLiteOpenHelper。
public class MyDatabase {
private final DatabaseHelper databaseHelper;
private SQLiteDatabase db;
private static final String DATABASE_NAME = "com.my.db";
private static final int DATABASE_VERSION = 1;
public MyDatabase(Context context) {
databaseHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//use db.execSQL to create the database
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// use db.execSQL to update (modify) the database
}
}
public SQLiteDatabase open() throws SQLException {
db = databaseHelper.getWritableDatabase();
return db;
}
}
作爲上下文,您可以傳遞您的應用程序上下文,以防需要使用該庫的應用程序 – kingston
所以,我怎麼能應付嗎?我的需求非常簡單,我有一個數據庫類,我需要的第一件事是打開/創建一個數據庫。我可以從哪裏獲得背景?知道我正在創建一個供他人使用的庫。感覺就像我需要創建一個完整的android應用程序來實現這個工作? –
不,你沒有明白我的觀點,數據庫將在第一次調用構造函數sqliteopenhelper時創建,在那裏你可以在構造函數參數中獲得上下文。 是的數據庫只會被創建,當一個應用程序調用你的庫! – AAnkit
當然這很好。將看看這個sqliteopenhelper。我得到的印象是第三方幫手類,我需要做的一切從零開始 –