我正在使用新的Google Play游戏服务在Android设备上创建实时多人游戏。 我在游戏进行和基本机制之间进行了沟通。但是,我现在已经意识到,只要游戏活动剩余,房间就会断开连接。 这有点让我担心,原因如下:
有没有办法保持与房间的连接,或者可能重新连接到房间(文档肯定会阻止重新连接),以便允许玩家继续游戏无缝中断,如上所述?
谢谢, 罗布
答案 0 :(得分:1)
我遇到了同样的问题,但对我来说,当用户轮换他们的设备时(活动将被销毁,以及与Google Play服务的连接)。我认为我的解决方案也适合你。我回答了自己的问题here:
简而言之,这是口头解释(参见代码示例的链接):
设备方向更改会破坏MainActivity extends BaseGameActivity
,并且会破坏您的游戏状态(即您与Google Play服务的连接)。但是,我们可以将所有GameHelper代码放入一个“无头”片段(没有UI的片段),并声明setRetainInstance(true)
。现在,当我们的MainActivity extends FragmentActivity
在方向改变时被破坏时,无头碎片会停止,甚至分离,但不会被破坏! (onDestroy()
未被调用)当Android重新创建MainActivity
时,我们的无头片段会自动重新附加到它上面。此时,在我们的无头片段中,onCreate()
未被调用。所以onCreate()
是我们连接到GameHelper的地方。我们可以在onDestroy()
中与GameHelper断开连接,因为除非应用程序完成(当时可以杀死我们的连接),否则永远不会调用它。