是否缓存应用内购买或检查Android应用上的每次启动?
我的应用程序有一些应用程序内购买,每个都解锁了应用程序的某些部分 哪种方式是在应用程序中实际拥有购买状态的最佳方式,但方式正确:是否缓存应用内购买或检查Android应用上的每次启动?,android,in-app-purchase,in-app-billing,Android,In App Purchase,In App Billing,我的应用程序有一些应用程序内购买,每个都解锁了应用程序的某些部分 哪种方式是在应用程序中实际拥有购买状态的最佳方式,但方式正确: 在实际购买后或恢复购买时,将购买内容存储在SharedReferences上,并在应用程序启动时读取。这可能会产生问题:在退款的情况下,应用程序将继续具有这些值。根用户可以编辑xml并添加购买,就像购买一样 在应用程序启动时执行aqueryInventoryAsync,并将结果存储为SharedReference,以备将来在应用程序中使用。在没有网络的情况下,这将允许
SharedReferences
上,并在应用程序启动时读取。这可能会产生问题:在退款的情况下,应用程序将继续具有这些值。根用户可以编辑xml并添加购买,就像购买一样queryInventoryAsync
,并将结果存储为SharedReference,以备将来在应用程序中使用。在没有网络的情况下,这将允许使用先前queryInventoryAsync
结果中的SharedReference值那怎么办呢?如果每个应用程序启动时都应该使用缓存结果,那么
queryInventoryAsync
是否会产生任何问题 在我所有的游戏中,每次启动应用程序时,我都会使用queryInventoryAsync
,到目前为止,还没有出现任何问题(2万用户)。谢谢。如果queryInventoryAsync
失败,是否也存储结果?不,如果失败,我不存储结果。我也不单独存储结果。但我注意到的一件事是,用户经常抱怨应用升级后,应用无法识别以前的应用内购买。因此,我怀疑在升级过程中缓存被清除,如果应用程序无法及时查询谷歌的服务器,那么应用程序可能会暂时显示未进行购买。