私は、1 つのアクティビティ ( BaseGameActivityを拡張する) だけを持つアプリに取り組んでおり、複数のフラグメントを切り替えます (Google のサンプル コードの状態のように)。
現在、2 台のデバイスでマルチプレイヤー ゲームをテストしています。両方のユーザーが正常にログインしたり、メッセージを相互に送信したりできます。ただし、一方のユーザーがデバイスを回転させた瞬間、部屋から追い出されます。
アクティビティが破壊されて再作成されているため、これは理にかなっていると思います。しかし、私が理解できないのは、ユーザーがデバイスを回転させ、ゲームの状態 (ログイン、ルームへの参加など) をそのまま維持できるようにするために何をする必要があるかということです。
1 つの考え: android:configChanged="orientation|screenSize" - しかし、Android はそれを思いとどまらせます (ほとんどの場合、正当な理由から) - しかし、これは、デバイスの向きが変わっても部屋にとどまるために Google Play ゲーム サービスで行かなければならない方法ですか? ?
「onRetainNonConfigurationInstance()」を使用して GameHelper インスタンスを保存し、アクティビティが再作成されたときに再度使用するのはどうですか?
または、何らかの形でゲーム接続 (サインイン、ルームへの参加など) をサービスに実装しますか?
それとも、私はこれについてすべて間違った方法で考えていますか?! ご意見とご協力ありがとうございます。可能であれば、コード例も大歓迎です。