我有一些应用程序为我的应用程序购买,每个解锁应用程序的某些部分。缓存应用程序购买或检查Android应用程序每次启动?
这将是真正具有在应用中购买状态的最佳方式,但在一个正确的方式?:
商店购买,后的实际购买或恢复购买,在
SharedPreferences
和在应用程序启动时阅读它。这可能会产生问题:在退款的情况下,应用程序将继续有价值。一个扎根的用户可以编辑xml并添加购买项目,如果这样做的话。在应用程序启动时执行一个
queryInventoryAsync
并将结果存储为SharedPreference以备将来在应用程序中使用。如果没有网络,这将允许使用先前的queryInventoryAsync
结果中的SharedPreference值。
因为谷歌游戏客户端现在缓存应用程序内本地设备上的账单信息 ,您可以使用API第3版,通过一个getPurchases通话更频繁地查询此 信息,例如。 与以前版本的API不同,许多版本3 API调用 将通过缓存查找服务,而不是通过与Google Play的网络 连接,这会显着加快API的 响应时间。
那该怎么办?在每个应用程序启动时queryInventoryAsync
是否会因为它应该使用缓存结果而创建任何问题?
谢谢。如果'queryInventoryAsync'失败,你还要存储结果吗? – Alin
不,我不保存结果,以防万一它失败 –
我不单独存储结果。我注意到的一件事是,用户经常抱怨应用程序升级后应用程序无法识别以前的应用内购买。所以我怀疑缓存在升级过程中会被清除,如果应用程序无法及时查询Google的服务器,那么应用程序可能暂时显示购买未完成。 – snark