2012-01-04 86 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應用 - 所以我希望這個解釋可以幫助你們不會讓我犯同樣的錯誤;)