5

我正在尝试在我的应用程序中正确使用 OpenGL,但在使用 Lifecycle Methods:onPause()onResume().

文档指出:

活动生命周期

当活动暂停和恢复时,必须通知 GLSurfaceView。GLSurfaceView 客户端需要在活动暂停时调用 onPause() 并在活动恢复时调用 onResume()。这些调用允许 GLSurfaceView 暂停和恢复渲染线程,还允许 GLSurfaceView 释放和重新创建 OpenGL 显示。

首先,在整个 Android 的其余部分,我对系统调用的生命周期事件(活动/片段)感到有些onPause()困惑onResume()。在这里,从描述(包括onPause()onResume()中的详细描述)看来,它们似乎必须由开发人员手动调用。

我一直在使用GLSurfaceView ,没有打电话onPause()onResume()也没有发现问题。但是,为了打球(并减少可能在恢复活动时出现奇怪行为的嫌疑人),我正在尝试按照文档中的说明添加它们。

然而,似乎使用 onResume() 会导致 aNullPointerException被抛出:

07-23 13:20:08.570: E/AndroidRuntime(20777): Caused by: java.lang.NullPointerException
07-23 13:20:08.570: E/AndroidRuntime(20777):    at android.opengl.GLSurfaceView.onResume(GLSurfaceView.java:544)
07-23 13:20:08.570: E/AndroidRuntime(20777):    at com.ActivityNameHere.onResume(ActivityNameHere.java:151)

我是否缺少注册的Activity步骤View

4

1 回答 1

6

onPause()并且onResume()仍在破坏我的实现 - 但公平地说,他们不再在崩溃时这样做:

文档:

The following GLSurfaceView methods can only be called after setRenderer is called:

getRenderMode()
onPause()
onResume()
queueEvent(Runnable)
requestRender()
setRenderMode(int)

在某些情况下,我没有setRenderer()在我之前打电话。Activity.onResume()

于 2012-07-23T14:06:07.263 回答