2012-01-04 59 views
3

在Android Market上提交我们的第一个应用后,我遇到了一个奇怪的问题。该应用具有应用内购买功能,在发布之前已经过全面测试(或者至少我是这么认为的)。Android应用内购买问题

我知道类似的问题可能已经存在,但我还没有找到它们,并且仅用几个字来描述我的问题是相当困难的。

一)下载我们从Android Market
b应用)通过在Android Market
c)中打开的链接下载后打开应用开始购买这需要:

当用户出现的问题用户返回到Android电子市场。
d)要么取消或完成购买

然后:

而不是返回到我们的应用程序,用户返回到Android市场(这显示我们的应用程序的描述,一个按钮来打开应用程序等等)。在LogCat中,响应代码从Android Market发送到购买观察者,但是我们的应用程序(现在处于后台)不会收到代码,因此会暂停,并一直等待Android Market的响应。所以这实际上是两个问题,因为用户在购买后应该返回到Android电子市场屏幕并不是故意的 - 我们的应用应该在历史上的Market之前。

如果用户在Android电子市场之外打开我们的应用程序(例如主屏幕),则一切正常。观察员收到取消或完整的回应代码。

我们使用Google自己的应用内结算示例作为我们的基础。

我希望这有点可以理解。

在此先感谢

回答

5

好吧,我终于找到了自己的答案。

我会尽力解释的解决方案,而无需使用任何代码:)

的PurchaseObserver实例仅当我的活动是活动的 - 但它并不活跃,在上述的例子。我犯了一个错误,认为PurchaseObserver是订单应该保存在数据库中的地方 - 仅仅是为了发现购买时不能确定PurchaseObserver存在。相反,我现在只使用Observer来更改用户界面,然后通过ResponseHandler处理订单信息和数据库,在Android Market中购买商品时始终会调用它。

我还是觉得这很奇怪,用户在购买产品时被抛回到Android电子市场而不是我们的应用程序(只有当用户通过Android电子市场启动应用程序时),但我似乎无法找到解决方案或解释这个。

这是BTW不可能测试或重现该问题,而不必在Android Market应用 - 所以我希望这个解释可以帮助你们不会让我犯同样的错误;)