【发布时间】:2013-02-05 10:26:51
【问题描述】:
我正在创建一个应用程序的高级版,我已经为其发布了免费的精简版。我想将数据从精简版传输到高级版,或者让两个版本访问同一个数据库。 Android, two apps one database? 帮助回答了后面的操作。如果数据库是在精简版中创建的,那么当用户安装高级版时会发生什么?他们是否必须安装精简版才能保留数据?另一方面,我能否在独立于任一版本但仍处于沙盒状态的位置创建数据库?最终,我希望能够允许用户在安装 Premium 版本后删除 Lite 版本,但仍保持所有数据完好无损。我该怎么做呢?还是我坚持让我的用户在升级到高级版后仍然安装这两个版本?
【问题讨论】:
-
您可以拥有它,以便在首次运行高级版时,它会检查免费应用程序的内容提供商是否存在。如果找到,则将整个内容复制到存储在高级应用程序中的内容中。然后,高级应用程序只访问它自己的提供商,而不是从那时起免费的。唯一棘手的事情是,如果由于某种原因用户重新使用免费版,高级版不会得到他们所做的任何更改,但您可以通过在免费应用程序中检测到这种情况并通知用户或询问他们是否打算打开付费应用。
-
您是否有兴趣将数据放在应用程序外部的共享位置?如果是这样,我可以描述一下选项。
-
@ryan1234 这听起来像我要找的。但是,我仍然希望只能从我的应用程序或通过 ContentProvider 访问数据。我宁愿不将数据放在任何人都可以访问的共享位置。
-
@littleFluffyKitty 感谢您的想法。这听起来很像我所说的“将数据从精简版转移到高级版”。我将继续进一步探索该选项。
标签: android database android-contentprovider