将SQLite数据库保存在sdcard路径下
来源:互联网 发布:淘宝女装店装修模板 编辑:程序博客网 时间:2024/06/07 07:22
要想操作数据库,首先我们要获取一个事务SQLiteDatabase
public SQLiteDatabase getWritableDatabase() { synchronized (this) { return getDatabaseLocked(true); } }
private SQLiteDatabase getDatabaseLocked(boolean writable) {// ...省略 SQLiteDatabase db = mDatabase; if (db != null) { if (writable && db.isReadOnly()) { db.reopenReadWrite(); } } else if (mName == null) { db = SQLiteDatabase.create(null); } else { try { if (DEBUG_STRICT_READONLY && !writable) { final String path = mContext.getDatabasePath(mName).getPath(); db = SQLiteDatabase.openDatabase(path, mFactory, SQLiteDatabase.OPEN_READONLY, mErrorHandler); } else { db = mContext.openOrCreateDatabase(mName, mEnableWriteAheadLogging ? Context.MODE_ENABLE_WRITE_AHEAD_LOGGING : 0, mFactory, mErrorHandler); }// ...省略 }
public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { if (version < 1) throw new IllegalArgumentException("Version must be >= 1, was " + version); mContext = context; mName = name; mFactory = factory; mNewVersion = version; mErrorHandler = errorHandler; }
可以看到会根据我们初始化数据库传入的数据库名称来确定数据库保存的路径
那就好办了!
public SQLiteOpenHelperImp(Context context) {super(context, getMyDatabaseName(context), null, DATABASE_VERSION);} private static String getMyDatabaseName(Context context){ String databasename = DATABASE_NAME; boolean isSdcardEnable =false; // String state =Environment.getExternalStorageState(); boolean state =Environment.isExternalStorageRemovable(); if(state){//SDCard是否插入 isSdcardEnable = true; } String dbPath = ""; if(isSdcardEnable){ dbPath =Environment.getExternalStorageDirectory().getPath() +"/database/"; }else{//未插入SDCard,建在内存中 dbPath =context.getFilesDir().getPath() + "/database/"; } File dbp = new File(dbPath); if(!dbp.exists()){ dbp.mkdirs(); } databasename = dbPath +DATABASE_NAME; return databasename; }
阅读全文
0 0
- 将SQLite数据库保存在sdcard路径下
- 探讨数据库存放在包名路径下还是sdcard路径下遇到的Bug
- 数据库保存到SDcard
- 将bitmap保存到sdcard
- 将数据保存的SDCard
- c#读取数据库中图片路径,将图片保存到imagelist,在listview显示
- 创建数据库的时候就将数据库保存到SDcard中
- 创建数据库的时候就将数据库保存到SDcard中
- 在Sdcard上保存文件
- Android 将SQLite数据保存在SD卡
- Android--将数据保存到SDCard中
- Android--将数据保存到SDCard中
- 将文件保存到sdCard中去
- Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
- Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
- Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
- Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
- sqlite数据库保存聊天记录
- Linux 下将多个 *.png 图片合成一个 *.gif 文件
- 自学Tensorflow之交叉熵MNIST分类
- eclipse中如何修改context root
- javascript String 基本字符串和字符串对象
- Spring Aop demo入门
- 将SQLite数据库保存在sdcard路径下
- 【java面试】集合类篇
- register
- 这两天学习nRF51822的心得
- 商城项目实战33:单点登录系统SSO实现
- [YTU]_2618 ( B 求类中数据成员的最大值-类模板)
- myeclipse项目编码方式彻底设置
- 深入浅出OOP(五): C#访问修饰符
- android7.0中文API -- LinearLayout