我有一些應用程序爲我的應用程序購買,每個解鎖應用程序的某些部分。緩存應用程序購買或檢查Android應用程序每次啓動?
這將是真正具有在應用中購買狀態的最佳方式,但在一個正確的方式?:
商店購買,後的實際購買或恢復購買,在
SharedPreferences
和在應用程序啓動時閱讀它。這可能會產生問題:在退款的情況下,應用程序將繼續有價值。一個紮根的用戶可以編輯xml並添加購買項目,如果這樣做的話。在應用程序啓動時執行一個
queryInventoryAsync
並將結果存儲爲SharedPreference以備將來在應用程序中使用。如果沒有網絡,這將允許使用先前的queryInventoryAsync
結果中的SharedPreference值。
因爲谷歌遊戲客戶端現在緩存應用程序內本地設備上的賬單信息 ,您可以使用API第3版,通過一個getPurchases通話更頻繁地查詢此 信息,例如。 與以前版本的API不同,許多版本3 API調用 將通過緩存查找服務,而不是通過與Google Play的網絡 連接,這會顯着加快API的 響應時間。
那該怎麼辦?在每個應用程序啓動時queryInventoryAsync
是否會因爲它應該使用緩存結果而創建任何問題?
謝謝。如果'queryInventoryAsync'失敗,你還要存儲結果嗎? – Alin
不,我不保存結果,以防萬一它失敗 –
我不單獨存儲結果。我注意到的一件事是,用戶經常抱怨應用程序升級後應用程序無法識別以前的應用內購買。所以我懷疑緩存在升級過程中會被清除,如果應用程序無法及時查詢Google的服務器,那麼應用程序可能暫時顯示購買未完成。 – snark