斐伊川大家,SQLite數據庫中的Android
我在Android的小白和需要一些幫助......
我正在開發要求我寫一個SQLiteDatabase的一個活動,並從訪問它的應用程序另一項活動。我正面臨執行此問題的一個問題。關於我們如何跨多個活動共享數據庫的任何建議/想法......?
斐伊川大家,SQLite數據庫中的Android
我在Android的小白和需要一些幫助......
我正在開發要求我寫一個SQLiteDatabase的一個活動,並從訪問它的應用程序另一項活動。我正面臨執行此問題的一個問題。關於我們如何跨多個活動共享數據庫的任何建議/想法......?
我建議你使用SQLiteOpenHelper類。
只需在您的活動中一致地使用相同的數據庫名稱,就不會引起任何問題。
SQLiteOpenHelper helper = new SQLiteOpenHelper(
context, R.string.db_name, null, 1);
SQLiteDatabase db = helper.getWritableDatabase();
訪問同一個數據庫中的兩個不同的活動的問題,可以在幾個不同的方式來處理。
最簡單的,應該爲你的情況工作,是創建一個新的類,擴展SQLITEOpenHelper並從兩個活動實例化該類。
Android在多個活動或進程同時訪問SQlite數據庫時沒有問題。
只需製作一個通用的DataBase類並通過創建對象來使用它。
public class DbOperation extends SQLiteOpenHelper{
public static final String name="mydb.db";
public static final String MainTab="MainTab";
public static final String ID="_ID";
public static final String LevelName="LevelName";
int version =2;
public DbOperation(Context context, String name, CursorFactory factory,
int version) {
super(context, name,null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String str="CREATE TABLE "+MainTab+"("+ID+" integer primary key autoincrement,"+LevelName+" text not null unique key)";
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
使用的任何活動這一數據庫在下面的方式
DbOperation ob=new DbOperation();
SQLiteDatabase db=new SQLiteaDatabase();
db=ob.getWritableDataBase();
and now you can use operation like query,delete,update
Cursor cur=db.query(Table_name,null,null,null,null); etc
你能更多地討論如何去落實上述聲明?我面臨困難。 – Anirudh 2012-03-13 10:26:24
開個新問題怎麼辦?距離我的回覆已經兩年了:) – SirDarius 2012-03-13 17:00:36