【发布时间】:2012-12-27 03:43:21
【问题描述】:
与许多其他人一样,我将拥有我的应用程序的“精简版”和“专业版”版本。他们使用一个数据库,该数据库将在内部存储中。我希望用户能够购买专业版并在不丢失数据库的情况下安装它。
部分解决方案: 我看过其他关于如何让多个应用程序使用同一个数据库的帖子。本质上,这需要两件事:
- 两个清单都在清单中声明了相同的 android:sharedUserId,
- 其中一个应用必须使用另一个应用的上下文打开数据库。
我试过了,是的,它有效!
问题:卸载精简版会删除数据库。按照这个:用户安装精简版。精简版创建数据库,他很乐意在其中创建和保存数据。后来他决定安装pro。专业版访问由 lite 创建的数据库,一切正常。最后,他卸载了lite,因为他不再需要它了。现在,pro 将停止工作,因为卸载 lite 版本时 db 已被 Android 删除。
什么解决方案?想到的一个解决方案是让第三个应用程序拥有数据库。这是一个“什么都不做”的应用程序,它可以简单地安装并且与包具有相同的名称。它没有 UI,实际上永远不会运行。然后,可以在不影响数据库的情况下安装或卸载 lite 和 pro 应用程序。
这是个好主意吗?有没有更好的方法(除了为数据库创建提供者)?如果这是一种合理的方法,我该如何创建一个没有 UI 而不是服务的应用?
【问题讨论】:
-
不是一个真正的答案,但您可以拥有一个应用并使用应用内购买进行升级。
-
我了解到免费应用可以使用应用内购买系统解锁“pro”版本。这不是我的首选解决方案,因为它绕过了一些用户保护,例如能够获得自动退款。但是,这是阻力最小的道路,所以我要走。
-
如果用户同时卸载 pro 和 lite 版本并且留下数据,他们可能(并且应该)感到恼火。所以我想知道在卸载 pro 和 lite 时是否有某种方法可以让第三个静音应用程序卸载。