Android使用SQLiteOpenHelper更改数据库的存储路径到SD卡

前言:

最近的项目中遇到系统恢复了出厂设置,data分区下的数据全被清空了,因为默认的sqlite数据库是放在/data/data/包名下的database目录下的。所以我想把数据库路径改下,放到SD卡上,不放到默热的data/data包名下面,这样系统就算是恢复了出厂设置数据也不会丢了。


参考博客

//http://blog.csdn.net/lime110/article/details/50685095

//http://www.cnblogs.com/linjzong/p/5045839.html

阅读下了SqliteOpenHelper的源码,和数据库路径相关部分如下。

其实是调用了mContext的getDataBasePath方法,这个方法是在ContextImpl中实现的,再看下源码

Android本身已经实现了自定义路径的方法了,只要传入的数据库名是以"/"开头后面接要存储的路径就行了。这样就不会再在data/data/包名下的database目录下创建数据库啦。

实现代码:

最后不要忘记,加上SD卡的读写权限

一句话总结:只要传入自定义完整路径数据库名就OK啦。。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。