私は2つの活動のAndroidプロジェクトを持っています。 1つは私の主な活動で、ネイティブコードから更新されたGLSurfaceView
を使用しています。もう1つはPurchaseActivity
で、購入するためにGoogleのアプリ内課金クライアントを開きます。購入はうまくいく。In-App BillingクライアントがEGLコンテキストを失うのを止めるにはどうすればいいですか?
私はに実行している問題がPurchaseActivity
終了後に、それが正常に完了したかどうか、ERRSということである、またはキャンセルされ、それが主な活動に切り替わり、EGLコンテキストは消え、私が受け取る:
onSurfaceCreated()
とonSurfaceChanged()
方法が再トリガされた後(スレッドごとに一度ログイン)なし現在のコンテキストとのOpenGL ES APIへコール
。
私はthis questionと似ていますが、私は既に別のアクティビティで動作しています。finish()
コールを削除すると、そのままPurchaseActivity
にスタックされたままです。
アプリ内請求の呼び出し後に実際にテクスチャをリロードする必要はありますか?アプリが中断されていないので、この時点では必要ないはずです。
マイレンダラコードは、課金クライアントウィンドウが閉じた後、それは新しい表面をトリガし、私のネイティブコードを吹くまで、かなり基本的なしかし、何らかの理由である:
public class GameRenderer implements GLSurfaceView.Renderer
{
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{ }
public void onSurfaceChanged(GL10 gl, int width, int height)
{
BaseLib.setScreenSize(width, height);
BaseLib.init();
}
public void onDrawFrame(GL10 gl)
{
BaseLib.render();
}
}
私の問題の根本にある自分のコードの競合状態でしたが、これも参考になりました。 –