保持房间连接

时间:2013-07-04 12:06:54

标签: android google-play-games

我正在使用新的Google Play游戏服务在Android设备上创建实时多人游戏。   我在游戏进行和基本机制之间进行了沟通。但是,我现在已经意识到,只要游戏活动剩余,房间就会断开连接。    这有点让我担心,原因如下:

  1. 游戏可能会在手机上播放。来电肯定会导致电话活动出现,断开房间,从而断开游戏
  2. 显示可能会暂停,也会断开连接
  3. 我原本计划在游戏屏幕上显示广告。点击广告会与房间/游戏断开连接
  4. 有没有办法保持与房间的连接,或者可能重新连接到房间(文档肯定会阻止重新连接),以便允许玩家继续游戏无缝中断,如上所述?

    谢谢, 罗布

1 个答案:

答案 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断开连接,因为除非应用程序完成(当时可以杀死我们的连接),否则永远不会调用它。