У меня есть базовый класс Activity, который создает GLSurfaceView и передается класс, полученный из Renderer в методе SetRenderer. Теперь я знаю, что ресурсы OpenGL могут быть потеряны, когда телефон или планшет перейдет в спящий режим (до сих пор так DirectX 9), и что эти ресурсы необходимо воссоздать, когда телефон вернется из состояния ожидания.
Правильно ли я думаю, что все мои другие классы, активность и т.д. Восстанавливаются точно так, как они были, когда он просыпается? т.е. мне нужно было бы повторно связывать такие вещи, как текстуры, шейдеры, состояние GL и т.д. в методе onSurfaceCreated. Мне не нужно воссоздавать представление или объект визуализации.
Вызывается метод onSurfaceCreated при пробуждении телефона или только один раз при запуске? Является ли объект GL, который я получаю в onSurfaceCreated, уничтожен (т.е. Безопасно его хранить и использовать через цикл сна/бодрствования)?
Правильно ли я думаю, что все мои другие классы, активность и т.д. Восстанавливаются точно так, как они были, когда он просыпается?
Это зависит от того, была ли эта деятельность убита между этими "пробуждениями". Если действие не было убито между этими паузами, все ваши классы восстанавливаются так, как они были, когда вы покинули свою деятельность.
Мне нужно было бы повторно связать такие вещи, как текстуры, шейдеры, состояние GL и т.д. В методе onSurfaceCreated. Мне не нужно воссоздавать представление или объект визуализации.
Верный.
Вызывается метод onSurfaceCreated при просыпании телефона или только один раз при запуске?
Он вызывается каждый раз, когда создается новая поверхность, что означает каждый раз, когда ваше приложение приходит из фона на передний план.
GL
? Всегда, всегда создавайте заново ресурсы OpenGL при создании вашей поверхности.