Serviços de jogo do Google Play A mudança de orientação de dispositivo para vários jogadores expulsa o usuário fora do quarto

Eu estou trabalhando em um aplicativo que tem apenas uma atividade (que se estendeBaseGameActivity), e alternar entre vários fragmentos (muito parecido com os estados de código de exemplo do Google).

Estou testando um jogo multiplayer agora, em dois dispositivos separados. Ambos os usuários podem fazer log-in, enviar mensagens entre si, etc. No entanto, no instante em que um usuário gira seu dispositivo, ele é expulso da sala.

Acho que isso faz sentido porque a atividade está sendo destruída e recriada. Mas o que eu não entendo éO que precisamos fazer para permitir que o usuário gire o dispositivo e mantenha o estado do jogo (logado, unido a uma sala, etc) intacto?

Um pensamento: android: configChanged = "orientação | screenSize" - Mas o Android desencoraja isso (por boas razões, na maioria dos casos) - mas é assim que temos que ir com o Google Play Game Services para ficar em uma sala na mudança de orientação do dispositivo ?

Que tal usar "onRetainNonConfigurationInstance ()" para salvar a instância do GameHelper e usá-la novamente quando a atividade for recriada?

Ou de alguma forma implementar a conexão do jogo (entrada, junção de sala, etc) em um serviço?

Ou eu estou pensando sobre isso tudo errado? Obrigado por seus pensamentos e ajuda. Exemplos de código também seriam muito apreciados, se possível.

questionAnswers(3)

yourAnswerToTheQuestion