【问题标题】:What should be the location of sqlite database in android application?sqlite数据库在android应用程序中的位置应该是什么?
【发布时间】:2016-04-24 17:45:11
【问题描述】:

目前,我正在开发一个 android 应用程序,它会在打开服务器后立即从服务器下载 sqlite 数据库。我必须在应用程序中非常频繁地使用这个数据库文件,并且必须经常从这个数据库文件中获取数据。那么,这个数据库在手机中的正确位置或目录应该是什么,这样我才能有效地读/写这个数据库文件。

【问题讨论】:

  • 内容提供者,同步适配器

标签: java android database sqlite adk


【解决方案1】:

默认情况下,新创建的数据库存储在:

//data/data/<Your-Application-Package-Name>/databases/<your-database-name>

但在非 root 设备上无法访问此文件夹。通过 Internet 传输数据库存在安全风险,但如果绝对必要,您可以像这样修改 MySQLiteOpenHelper 构造函数:

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
    MySQLiteOpenHelper(Context context) {
       super(context, "/mnt/sdcard/<your-app-name>/database_name.db", null, 0);
}

}

通过这样做,您将数据库存储在 SD 卡上的文件夹中。

请记住,通过使用这种方法,您需要额外的权限才能在 manifest.xml 中写入外部存储:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

您将在此处找到更多信息和示例:Location of sqlite database on the device

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多