首页 > 解决方案 > Android:检查应用内购买状态的最佳实践?

问题描述

我正在使用琐碎的驱动器 2 示例在我的第一个应用程序中实施应用内计费。

我的简单实现:该应用程序是免费的,可以通过提供一些附加功能的应用内计费升级到高级版本。这些功能在不同的活动中,有时只有购买了高级才能执行操作,有时活动看起来不同。所以我只能有两种不同的状态:基本或高级。

我读了很多关于这个话题的文章,但仍然有一些问题。我猜 stackoverflwo 的许多答案都属于应用程序计费的较旧实现(例如:如何最好地在本地保存 InApp 购买状态?)。

现在我的问题是:我必须检查用户在不同活动中是否具有高级状态。不总是查询购买(性能)的最佳实践是什么?可以检查一次并在整个应用程序中使用吗?有人有类似的代码示例吗?我认为这可能是一个常见的实现,但没有找到任何东西......

顺便说一句:检查用户是否购买溢价的正确方法是来自 BillingClint 的 queryPurchases - 对吗?

非常感谢您的帮助和想法!

标签: androidin-app-purchase

解决方案


是的,你不应该一直查询这个。您应该在用户购买您的应用内商品后立即检查应用启动。

您应该有一个单例存储库,您可以将其注入/传递到所有重要的活动中。活动应向此存储库询问当前的购买状态(即:已购买、未购买、未知)

如果由于某种原因无法在线检查,您可能应该实施重试行为。


推荐阅读