【发布时间】:2012-04-02 21:13:56
【问题描述】:
我有一个包含两个活动的 Android 项目。一个是我的主要活动,使用从本机代码更新的GLSurfaceView。另一个是PurchaseActivity,它打开 Google 的应用内结算客户端进行购买。进行购买工作正常。
我遇到的问题是,在PurchaseActivity 完成后,无论是成功完成、出错还是被取消,然后切换回主活动,EGL 上下文都会消失,我会收到:
在没有当前上下文的情况下调用 OpenGL ES API(每个线程记录一次)
之后onSurfaceCreated() 和onSurfaceChanged() 方法被重新触发。
我发现 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();
}
}
【问题讨论】:
标签: android opengl-es android-ndk in-app-billing