我在基于SDL2构建的本机应用程序中使用C++ SDK用于Google Play游戏服务。 本机部分是在运行时加载的.so文件。
只要我以标准方式使用应用程序,一切正常。另一方面,在处理多个窗口时,我遇到了gpg::GameServices
的问题。
当应用程序切换到多窗口模式时,本机部分将离开main
功能并按设计重新输入 。由于用户正在终止应用程序或者由于切换到多窗口模式,我不知道main
函数是否被放弃,因此在函数结束时我将指针重置为文档中建议的gpg::GameServices
对象。然后在同一函数的开头重新初始化。
然而,看起来出现问题并且应用程序只是冻结这样做了一段时间,并带有以下消息:
V / GamesNativeSDK:GameServices清理时间超过15秒或返回错误。在GameServicesImpl可能仍处于活动状态时销毁对象。
20秒后,应用程序按预期再次启动,但此冻结非常烦人,我无法理解原因
请注意,调用Flush
或FlusBlocking
并不能解决问题的原因显而易见(我只是为了检查是否属于这种情况)。
即使应用程序没有正确关闭,是否有任何问题终止gpg::GameServices
?我的意思是,当活动被销毁但.so没有被丢弃时,会创建一个新活动,并在紧接着之后再次调用main
函数?