当我们在Android市场上提交了我们的第一个应用程序后,我遇到了一个奇怪的问题。这个应用程序有一个应用程序内购买功能,在发布之前已经进行了充分的测试(至少我是这么认为的)。
我知道类似的问题可能已经存在,但我还没有找到,很难用几句话来描述我的问题。
当用户:时出现问题
a)从Android市场下载我们的应用程序
( b)通过Android市场的开放链接下载后打开应用程序
( c)启动一项将用户带回Android市场的采购。
( d)取消或完成购买
:
用户不再返回我们的应用程序,而是返回到Android (Android市场显示我们的应用程序的描述,其中有一个按钮来打开应用程序等等)。在LogCat中,一个响应代码从Android发送到购买观察者,但是我们的应用程序(现在处于后台)没有收到代码,也没有收到相应的代码,永远在等待Android的响应。这实际上是两个问题,因为用户购买后返回Android市场屏幕并不是有意的--我们的应用程序应该在历史上领先于市场。
如果用户在Android市场之外打开我们的应用程序(例如主屏幕),一切都会正常工作。观察者收到“取消”或“完整响应代码”。
我们使用了谷歌自己的应用程序计费示例作为我们的基础。
我希望这是可以理解的。
提前感谢
发布于 2012-01-07 09:58:21
好吧,我自己终于找到答案了。
我将尝试解释解决方案,而不使用任何代码:)
只有当我的活动处于活动状态时,PurchaseObserver实例才可用--但在上面描述的示例中,它不是活动的。我错误地认为PurchaseObserver是应该保存在数据库中的订单--结果发现在进行购买时您无法确定PurchaseObserver是否存在。相反,我现在只使用观察者来更改UI,然后通过ResponseHandler处理订单信息和数据库,当在Android中进行购买时,总会调用这些信息和数据库。
我仍然认为用户在购买时会被扔回Android市场而不是我们的应用程序(只有当用户通过Android市场启动应用程序时),但我似乎找不到解决办法或解释。
如果没有Android市场上的应用程序,这是不可能测试或再现问题的--所以我希望这个解释可以帮助你们不要犯我犯过的同样的错误;)
https://stackoverflow.com/questions/8728633
复制相似问题