问题描述

我们游戏集成了6.2.0.300版本的游戏sdk后,后台提交更新包并勾选了“强制更新”选项,新包上线后,在测试游戏强制升级功能时,发现偶现的点击“退出应用”退不出游戏,查看日志发现最后一次点击按钮, 升级sdk中isExit 字段返回的false,所以怀疑是不是sdk的问题。

问题分析

带着疑问联系华为技术支持(可提单联系),技术支持复现问题后,发现最后一次点击“退出应用”按钮,并没有进入升级的回调,而isExit字段返回的false,还是上一次弹升级弹窗返回的,本次点击按钮并没有打印日志,所以导致我误以为是isExit字段返回false导致的没有退出游戏。

技术支持分析之所以没有退出游戏,是因为我的升级代码是这么写的:

因为callback放在了局部变量中,很容易被回收,所以会偶现收不到回调。

问题解决

解决的方法就是把callback放到成员变量里,如下图所示:

改完之后,问题解决。


华为开发者论坛
352 声望56 粉丝

华为开发者论坛是一个为开发者提供信息传播、开发交流、技术分享的交流空间。开发者可以在此获取技术干货、华为源码开放、HMS最新活动等信息,欢迎大家来交流分享!