我遇到了同样的问题,尽管对我来说是当用户旋转他们的设备时(活动将被破坏,以及与 Google Play 服务的连接)。我认为我的解决方案也应该对你有用。我在这里回答了我自己的问题:
简而言之,这是口头解释(参见代码示例的链接):
设备方向更改将破坏MainActivity extends BaseGameActivity
,并随之破坏您的游戏状态(即您与 Google Play 服务的连接)。但是,我们可以将所有 GameHelper 代码放入一个“无头”片段(没有 UI 的片段)中,并setRetainInstance(true)
声明。现在,当我们MainActivity extends FragmentActivity
在方向改变时被破坏时,无头片段会停止,甚至分离,但不会被破坏!(onDestroy()
未调用)当MainActivity
被 Android 重新创建时,我们的无头片段会自动重新附加到它。此时,在我们的无头片段中,onCreate()
没有调用。我们onCreate()
连接到 GameHelper 的地方也是如此。我们可以断开与 GameHelper 的连接,onDestroy()
因为它永远不会被调用,除非应用程序完成(在那个时候,可以终止我们的连接)。