最初に少し背景を説明します。私は Android と iPhone の両方のプラットフォーム用のビデオ ゲームを開発しています。iPhone の仕組みでは、ユーザーがホーム ボタンを押して後でゲームに戻ると、ほとんどの場合、ゲームは一時中断することなく中断したところから再開します。すぐにレンダリングとゲーム ループに戻ります。これを iOS プラットフォームにセットアップするのは、私にとって非常に簡単でした。Androidでこれを達成すると、Googleの結果と何時間も格闘した後、私は激怒しました:P
私は iPhone と Android の両方に独自の OpenGL セットアップを使用しており、すべてがうまく機能しています。問題の根本は、OpenGL コンテキストを作成するために SurfaceHolder が必要なことだと思います。画面がゲームのフォーカスを失ったとき(つまり、ホームボタンが押されたとき)、AndroidはSurfaceViewクラスでsurfaceDestroyedを呼び出し、基本的にopenglコンテキストをKILLSします。surfaceCreated が呼び出されたときに、新しい SurfaceHolder を使用して新しいものを再作成できますが、その後、すべてのアート アセットをリロードする必要があり、達成しようとしているすべての目的が無効になります。
どうにかして Android OS が Surface ホルダーを強制終了するのを防ぐことはできますか?これを機能させるために使用できるカスタム ビューはありますか? ここで私を助けることができるマニフェストにいくつかの設定がありますか (ほとんどのフラグを徹底的にテストしたので、それは疑わしいです) Angry Birds は Android OS 上でこれを完全に実行するため、これが可能であることはわかっています。