У меня есть проект Android с двумя действиями.Одним из них является мое основное занятие, использующее GLSurfaceView
, которое обновляется из собственного кода.Другой - PurchaseActivity
, который открывает клиент Google In-App Billing для совершения покупок.Создание покупок работает нормально.
Проблема, с которой я сталкиваюсь, заключается в том, что после завершения PurchaseActivity
, успешно ли он завершается, ошибается или отменяется, и он переключается обратно на основное действие, контекст EGLисчезает, и я получаю:
вызов API OpenGL ES без текущего контекста (зарегистрирован один раз для потока)
После этого методы onSurfaceCreated()
и onSurfaceChanged()
retriggered.
Я нашел этот вопрос похожим, но мой уже выполняется в отдельном упражнении, и если я удаляю вызов 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();
}
}