android - Android:检查应用内购买状态的最佳实践?
问题描述
我正在使用琐碎的驱动器 2 示例在我的第一个应用程序中实施应用内计费。
我的简单实现:该应用程序是免费的,可以通过提供一些附加功能的应用内计费升级到高级版本。这些功能在不同的活动中,有时只有购买了高级才能执行操作,有时活动看起来不同。所以我只能有两种不同的状态:基本或高级。
我读了很多关于这个话题的文章,但仍然有一些问题。我猜 stackoverflwo 的许多答案都属于应用程序计费的较旧实现(例如:如何最好地在本地保存 InApp 购买状态?)。
现在我的问题是:我必须检查用户在不同活动中是否具有高级状态。不总是查询购买(性能)的最佳实践是什么?可以检查一次并在整个应用程序中使用吗?有人有类似的代码示例吗?我认为这可能是一个常见的实现,但没有找到任何东西......
顺便说一句:检查用户是否购买溢价的正确方法是来自 BillingClint 的 queryPurchases - 对吗?
非常感谢您的帮助和想法!
解决方案
是的,你不应该一直查询这个。您应该在用户购买您的应用内商品后立即检查应用启动。
您应该有一个单例存储库,您可以将其注入/传递到所有重要的活动中。活动应向此存储库询问当前的购买状态(即:已购买、未购买、未知)
如果由于某种原因无法在线检查,您可能应该实施重试行为。
推荐阅读
- android - 我在 LocationResult 中发现 @RecentlyNonNull 与代码相矛盾,我应该相信哪个?
- postgresql - 固定精度交叉点抱怨我需要 GEOS 3.9 或更高版本,但 PostGIS_GEOS_Version() 是 3.9
- python - Python Flask 登录 Current_User 并不总是可用
- c++ - 如何检测 .txt 文件中的卷曲(智能)撇号?(C++)
- python - 带有股票数据的 Python 线性回归线 - 获取 y 轴上的收盘价
- java - 如何在Java中解析json中的json
- python - 文件之间的 Python 全局变量
- visual-studio-code - PHP HTML 自动完成/片段 VS 代码
- c - 程序从 main 返回时触发断言
- typescript - 如何将类型元组转换为类型联合