1.在sd创建数据库
项目需求,需要在sd卡上创建数据库,看了半天的SQLiteOpenHelper代码,主要的方法就是getWritableDatabase()和getReadableDatabase(),
都是一系列的判断,然后返回SQLiteDatabase mDatabase,但是为什么就会在/data/data/com.xxxx./xxx.db呢?
认真看了代码之后,就会发现在getReadableDatabase()方法下:
String path = mContext.getDatabasePath(mName).getPath();//这里由上下文得到的路径就是在data/data/xxxxx目录
db = SQLiteDatabase.openDatabase(path, mFactory, SQLiteDatabase.OPEN_READONLY);
在getWritableDatabase()方法下有这样代码
if (mName == null) {
db = SQLiteDatabase.create(null);
} else {
db = mContext.openOrCreateDatabase(mName, 0, mFactory);//通过上下文创建数据库也是在data/data/下的
}
那么要在sd卡上创建数据文件,那么改变他们的路径就应该可以了:
private File getDatabasePath(String name) {
File dir=new File(Environment.getExternalStorageDirectory(), "/demo");
if(!dir.exists()) {
dir.mkdirs();

本文介绍如何在Android的sdCard上创建数据库,通过修改SQLiteOpenHelper的默认路径,详细阐述了getWritableDatabase()和getReadableDatabase()的实现,并讨论了并发访问时的锁机制。同时,还讲解了如何下载并读取sdCard上的db文件,以及在继承SQLiteOpenHelper后调用onCreate()和onUpgrade()的方法。
&spm=1001.2101.3001.5002&articleId=8217351&d=1&t=3&u=4b8dfdf1ddfc4bb290838f957bb403a6)
174

被折叠的 条评论
为什么被折叠?



