У нас есть приложение дополненной реальности, которое отображает видео или 3D-модель при наведении на определенный маркер.Это работает нормально, но как только мы завершаем работу MediaPlayer с помощью кнопки Back, контекст OpenGL, похоже, разрушается.Затем приложение просто перезагружается, и ему необходимо перезагрузить все ресурсы, включая 3D-модель, что вызывает задержку в 10-15 секунд, которую мы хотим предотвратить.Я уже прочитал кое-что о setPreserveEGLContextOnPause (true) и поместил его в наш GLSurfaceView (у нас планшет 3.x), но, похоже, он ничего не делает (мне нужно реализовать что-то еще, чтобы сделатьэто работает? Я едва нашел пригодную документацию об этом).
Я не уверен, где в нашем приложении может быть проблема, я предполагаю, что где-то наш GLSurface разрушается, и мы этого не замечаем.
Наш код выхода из MediaPlayer таков:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
this.finish();
Intent intent = new Intent(MediaPlayerActivity.this, OpenGLActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
}
return super.onKeyDown(keyCode, event);
}
Любые подсказки, как мы можем сохранить контекст OpenGL или выйти из MediaPlayer, не прерывая нашу основную деятельность?