4

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

  1. 游戏很可能是在手机上玩的。来电肯定会导致电话活动出现,从而断开房间并因此断开游戏
  2. 显示器可能会暂停,也可能会断开连接
  3. 我曾计划在游戏屏幕上显示广告。点击广告会断开与房间/游戏的连接

有没有办法保持与房间的连接,或者可能重新连接到房间(文档似乎肯定排除了重新连接)以允许上述中断,同时仍然允许玩家无缝地继续游戏?

谢谢,罗伯

4

1 回答 1

1

我遇到了同样的问题,尽管对我来说是当用户旋转他们的设备时(活动将被破坏,以及与 Google Play 服务的连接)。我认为我的解决方案也应该对你有用。我在这里回答了我自己的问题:

简而言之,这是口头解释(参见代码示例的链接):

设备方向更改将破坏MainActivity extends BaseGameActivity,并随之破坏您的游戏状态(即您与 Google Play 服务的连接)。但是,我们可以将所有 GameHelper 代码放入一个“无头”片段(没有 UI 的片段)中,并setRetainInstance(true)声明。现在,当我们MainActivity extends FragmentActivity在方向改变时被破坏时,无头片段会停止,甚至分离,但不会被破坏!(onDestroy()未调用)当MainActivity被 Android 重新创建时,我们的无头片段会自动重新附加到它。此时,在我们的无头片段中,onCreate()没有调用。我们onCreate()连接到 GameHelper 的地方也是如此。我们可以断开与 GameHelper 的连接,onDestroy()因为它永远不会被调用,除非应用程序完成(在那个时候,可以终止我们的连接)。

于 2013-07-17T12:49:32.817 回答