【问题标题】:Changing package name but keeping database on Android更改包名称但在 Android 上保留数据库
【发布时间】:2011-05-16 00:49:39
【问题描述】:

我创建了一个 Android 应用程序,它有一个我个人使用了几个月的包名。我即将在市场上发布它,我必须更改包名称。这是无法避免的。

我的问题是该应用程序附加了一个我想保留的 SQLite 数据库,但我知道如果我更改包名称,它将作为单独的应用程序安装,我将不得不重新启动我的数据库,这将需要很长时间。

有没有一种在维护 SQLite 数据库的同时更改包名称的好方法?或者至少可以轻松移动数据库?这只是我自己的手机,因为它还没有向公众发布。

【问题讨论】:

    标签: android sqlite package


    【解决方案1】:

    第 1 步:向您的应用添加备份/恢复功能,将数据库复制到 SD 卡或从 SD 卡复制。确保您的 SQLiteDatabaseSQLiteOpenHelper 对象首先关闭。

    第 2 步:将使用旧软件包构建的此应用的副本安装到您​​的手机上,并使用它来备份您的数据库。

    第 3 步:将此应用的生产副本安装到您​​的手机并使用它来恢复您的数据库。

    【讨论】:

    • 这太好了,谢谢。我在这里找到了一段很棒的示例代码:screaming-penguin.com/node/7749。导入数据库后,是否有一种简单/简单的方法来检查它是否是该应用程序保存的数据库?如果导入一些无效文件,我想会抛出一些随机异常
    • @HXCaine:“导入数据库后,是否有一种简单/简单的方法可以检查它是否是该应用程序保存的数据库?” -- 你可以在sqlite_master 上执行一些查询,看看它看起来是否正常,我想。 sqlite.org/faq.html#q7
    【解决方案2】:

    对于任何想做同样事情的人,我已经写出了如何备份/导入/恢复数据库,并在此链接中包含了一个完整的类:

    http://www.hxcaine.com/blog/2010/09/14/backing-up-importing-and-restoring-databases-on-android/

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 2012-05-04
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      相关资源
      最近更新 更多