我正在尝试在app billing v3中实现,除了一件事,一切都很好。在消费或购买物品后,我会请求更新库存。但结果总是产生旧库存而不是新库存,添加或删除项目。
这可能是预期的行为,我确实有一个解决方法,但它仍然很烦人。
我的工作是针对应用内结算的特殊“处理程序/包装器”而存在的。这个“处理程序”具有简单的生命周期。
1。 create(new call):创建一个新的IabHelper
对象并使用publickey做一些魔术
2。 startUp:从startSetup
调用IabHelper
方法,并在成功时设置标记。如果成功,它会进行更新库存调用。
第3。关闭:废弃IabHelper对象
处理程序实现onQueryInventoryFinished
方法,当调用此方法并且结果成功时,使用此方法给出的Inventory参数更新本地Inventory对象。
所以基本上我制作的处理程序有两个字段,一个Inventory和一个成功设置的标志。处理程序还有一个自定义界面,用于回调活动,例如。
还有两种方法:buy and consume
。
成功购买或消费商品后,我想更新当前的库存,但这不会像之前说的那样有效。
我的解决方法:从本地Inventory对象手动删除或添加购买。 (这应该在购买或消费方法中完成。)
有没有更好的“更可接受”的做法?