addison_lin 发表于 2012-1-30 15:33:47

将应用的sqlite文件放在sdcard中

在应用中建立的sqlite文件,默认的存放位置是:
data\data\包名\database文件夹
今天突然想是否能放在sdcard中呢?就找了一些资料,有自己写sqlitedatabase的,然后决定创建的sqlite文件的位置。读取的时候也从创建的目录读取。
下面是我的实现代码,我是继承sqliteopenhelper,在里面做文章。
private class NoteDbHelper extends SQLiteOpenHelper {
private File f = new File("/sdcard/dbfile/mynote.db");
public NoteDbHelper(Context context, String name,
Curso**ctory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
if (f.exists()) {
f.delete();
}
db = SQLiteDatabase.openOrCreateDatabase(f, null);
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
File f = new File("/sdcard/dbfile/mynote.db");
if (f.exists()) {
f.delete();
}
db = SQLiteDatabase.openOrCreateDatabase(f, null);
db.execSQL(DATABASE_DROP_TABLE);
onCreate(db);
}
@Override
public synchronized SQLiteDatabase getReadableDatabase() {
SQLiteDatabase db= SQLiteDatabase.openOrCreateDatabase(f, null);
return db;
}
@Override
public synchronized SQLiteDatabase getWritableDatabase() {
SQLiteDatabase db= SQLiteDatabase.openOrCreateDatabase(f, null);
return db;
}
}
但是这样有几个问题:
1、如果用户没有内存卡,还是需要加上判断的,最好能做一个自定义的安装过程,然后用户来决定安装在哪里。不知道android支持自定义安装过程吗?
2、如果拔下卡,就没有数据了,也是个问题。


页: [1]
查看完整版本: 将应用的sqlite文件放在sdcard中