日期:2014-05-16 浏览次数:20728 次
android 应用建数据库时,默认建立在 系统内 /data/data/'应用包名'/
有时我们需要建在SD卡当中。
在SD卡的优点:
1 当系统恢复出厂设置等操作后,重新安装应用。数据不会丢失。
2 方便备份、恢复。只要复制到PC上,或从PC复制到Android设备的SD卡中即可。
等等。
怎样才能方便的将数据库移动至SD卡?
1 初始化,SD卡路径。定义数据库所在路径。
package cn.hpc.dbdemo; import java.io.File; import android.os.Environment; /** 数据库根目录 /sdcard/hpcDbData/ 应用的数据建立在 /sdcard/hpcDbData/'包名'/ */ public class SDBHelper { public static final String DB_DIR = Environment.getExternalStorageDirectory().getPath() + File.separator + "hpcDbData" + File.separator + SDBHelper.class.getPackage().getName() ; static { while(! Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); break; } } File dbFolder = new File(DB_DIR); // 目录不存在则自动创建目录 if (!dbFolder.exists()){ dbFolder.mkdirs(); } } }
2 SQLiteOpenHelper 中的使用方法。
mDbName 数据库名,带全路径
package cn.hpc.dbdemo; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class DemoDbh extends SQLiteOpenHelper { public static final int VERSION = 1; public static final String mDbName = SDBHelper.DB_DIR + File.separator + "demo.db"; public DemoDbh(Context context) { super(context, mDbName, null, VERSION); } // ... 其它的省略,减少版面占用 }
非常简单。
完毕