我有以下问题:
我的应用程序可以免费下载,但可以通过应用程序内购买进行升级。 购买工作正常。现在我在启动时检查应用程序是否升级,以便初始化免费或升级的功能。
默认情况下,应用程序假定它未升级,使用默认设置为“false”的bool。启动时,应用程序会查询购买的商品,并在购买升级版本时将bool设置为true。
问题是谷歌与服务的连接是异步完成的。这意味着在启动时有些情况下应用程序被认为是未升级的,因为异步服务连接需要太长时间。
在检查应用版本之前是否可以等待服务连接完成? 文档说,使用API-Version 3,购买信息将在本地缓存。是否可以在不使用异步服务连接的情况下检索缓存的信息?
当然,我可以使用首选项自行保存升级信息,但如果是用户 喜欢在其他设备上安装该应用程序,升级版本将被视为未升级。 是否有人遇到同样的问题并找到了解决这个问题的方法?
答案 0 :(得分:0)
如果你看here:
它表示"版本3 API调用将通过缓存查找而不是通过网络连接提供给Google Play"。
含义,Google Play服务会优化您返回缓存结果的请求(如果有的话),尽管这会因您的应用和Google Play服务之间的进程间通信而异步发生。
我建议您的应用安装在新设备上。开始就像加载免费版本一样,同时检查"背景"中的先前购买如果用户已经拥有升级,则进行优雅升级。