我有一個GLSurfaceView
渲染器和方法onSurfaceCreated
只被調用一次(基本上只有當活動被創建或重新創建時)。GLSurfaceView渲染器,如何強制曲面重新創建?
我需要在正常活動生命週期中EGL上下文丟失和表面重新創建時測試行爲,但是無論我做什麼,我都無法將應用程序置於這種情況下。
有什麼我可以做的,以模擬onSurfaceCreated
再次調用的情況嗎?如何讓我的應用程序失去EGL上下文?
編輯:幾天後,我發現這個問題消失了,應用程序啓動時正確的行爲作爲規範說:
public abstract void onSurfaceCreated (GL10 gl, EGLConfig config)
Called when the surface is created or recreated.
Called when the rendering thread starts and whenever the EGL context is lost.
The EGL context will typically be lost when the Android device awakes
after going to sleep
在此之前,所有的設備去的時間睡覺,活動被破壞並在清醒時重新創建,這阻止了我測試OnSurfaceCreated
中的代碼是否運行良好。
現在它在睡眠/清醒時表現得更好 - 它通常不會破壞活動,只是調用OnSurfaceCreated
方法,這是我所瞄準的情況。
我唯一能想到的就是通過查看佈局機制來改變GLSurfaceView的大小,並看看會發生什麼。 – harism