gpt4 book ai didi

android - 保持房间连接

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:00 24 4
gpt4 key购买 nike

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

  1. 该游戏很可能在手机上玩。来电肯定会导调用话 Activity 出现,从而断开房间和游戏的连接
  2. 显示可以暂停,也可以断开连接
  3. 我曾计划在游戏屏幕上显示广告。点击广告会断开与房间/游戏的连接

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

谢谢,罗布

最佳答案

我遇到了同样的问题,但对我来说是当用户旋转他们的设备时( Activity 将被破坏,与 Google Play 服务的连接也会随之被破坏)。我认为我的解决方案也应该适合您。我回答了我自己的问题 here :

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

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

关于android - 保持房间连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17469901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com