Как правильно управлять жизненным циклом Activity с помощью OpenGL? - PullRequest
6 голосов
/ 03 июля 2010

Я действительно изо всех сил здесь, и это сдерживает меня.

Как правильно обрабатывать OpenGL, и Activity - которая запускает под-действия или возвращается на домашний экран.И пусть он возобновит работу именно там, где он был.

У меня он полу-работает как есть, текстуры / VBOs перезагружаются в onResume () при необходимости.

Но иногда при запуске-активности и возврат, или переход на домашний экран и возврат, onCreate запускается снова.Это все портит, и я получаю черный экран.

Я уверен, что все делаю неправильно.Может ли кто-нибудь объяснить, как нужно вести себя как эта деятельность?

1 Ответ

1 голос
/ 28 июля 2010

С какой платформой вы работаете?

Причина, по которой я спрашиваю, состоит в том, что до Eclair вся эта область была заполнена ошибками, в результате чего приостановка / возобновление OpenGL в основном работала только случайно.Тем не менее, похоже, что они были исправлены Eclair, и наше приложение, похоже, приостанавливается и возобновляет работу довольно надежно.

То, что вы должны сделать, это зарегистрировать обратный вызов для вашего SurfaceHolderтак что вы получите уведомление, когда поверхность появляется и исчезает.В методе surfaceDestroyed () вы полностью выключаете EGL, а затем в своем методе surfaceCreated () вы повторно инициализируете его.Вы не должны делать ничего из методов onCreate () / onResume () вашего Activity, так как поверхность может не появляться и не исчезать одновременно.

Тем не менее, наше приложение было разработано для Cupcake,когда все было довольно примитивно.Я понимаю, что в эти дни есть доступные служебные классы, которые делают всю тяжелую работу за вас, поэтому, если вы используете одну из этих вещей, может работать по-другому;а если нет, вы можете посмотреть на них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...