5

アプリケーションで OpenGL を正しく使用しようとしていますが、ライフサイクル メソッドの使用に関していくつか問題があります: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 に答える