需求说明:
默认数据库会存储到 /data/data/apk包名/databases/ 目录下,但为了实现项目的可移植,或者离线数据的展示等功能。需要将数据库放到指定文件夹下。
实现:
public class MyDatabaseOpenHelper extends SQLiteOpenHelper {
//类没有实例化,是不能用作父类构造器的参数,必须声明为静态
private static final String name = "/mnt/sdcard/temp/database.db"; //数据库路径及名称
private static final int version = 1; //数据库版本
public MyDatabaseOpenHelper(Context context){
super(context, name, null, version);
}
}
如上所示代码。
别忘记相关权限
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
关键点 :
指定数据库名称的时候,改为数据库的完整路径+数据库名称。这样在 /data/data/apk包名/ 目录下就不会再有 databases 文件夹了,而在自己定义的目录结构/mnt/sdcard/temp/下就会创建相应名称的数据库了。)