Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用内购买问题_Android_In App Purchase_Google Play - Fatal编程技术网

Android应用内购买问题

Android应用内购买问题,android,in-app-purchase,google-play,Android,In App Purchase,Google Play,在Android市场上提交了第一个应用程序后,我遇到了一个奇怪的问题。该应用程序有一个应用内购买功能,在发布之前已经过全面测试(或者至少我这么认为) 我知道类似的问题可能已经存在,但我还没有找到它们,而且很难用几句话来描述我的问题 当用户: a) 从Android Market下载我们的应用程序 b) 通过Android Market中的OPEN链接下载后打开应用程序 c) 开始购买,将用户带回Android Market。 d) 取消或完成购买 然后: 用户没有返回到我们的应用程序,而是返回到

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

我知道类似的问题可能已经存在,但我还没有找到它们,而且很难用几句话来描述我的问题

当用户:

a) 从Android Market下载我们的应用程序
b) 通过Android Market中的OPEN链接下载后打开应用程序
c) 开始购买,将用户带回Android Market。
d) 取消或完成购买

然后:

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

如果用户在Android Market之外打开我们的应用程序(例如,主屏幕),一切正常。观察者接收取消或完整响应代码

我们使用谷歌自己的应用程序计费示例作为我们的基础。 我希望这是可以理解的


提前谢谢

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

我将尝试在不使用任何代码的情况下解释解决方案:)

PurchaseObserver实例仅在“我的活动”处于活动状态时可用,但在上述示例中,它不处于活动状态。我错误地认为PurchaseObserver是应该将订单保存在数据库中的位置,结果发现在进行购买时,您无法确定PurchaseObserver是否存在。相反,我现在只使用Observer来更改UI,然后通过ResponseHandler处理订单信息和数据库,在Android Market中进行购买时,总是调用ResponseHandler

我仍然认为,当用户购买时(仅当用户通过Android Market启动应用程序时),用户会被扔回Android Market而不是我们的应用程序,这很奇怪,但我似乎找不到解决方案或解释

顺便说一句,如果没有Android Market上的应用程序,这是不可能测试或重现问题的——所以我希望这个解释能帮助你们不要犯我犯过的同样的错误;)