안녕하세요. 
모두들 회사 다니시느라 힘드시죠? ㅎㅎㅎ
저도 고민이 좀 있어서 이렇게 올립니다.

제가 요즘 안드로이드를 공부하면서 크로스 플랫폼의 엔진을 제작중인데요.
인트로용 엑티비티를 만들어야 할 일이 있어서 제작중에 문제에 부딛혀서 이렇게 질문 드립니다.

우선 시퀀스는 다음과 같습니다.

1. main activity로 최초 launch
2. main activity에서 Intent로 intro activity 호출.
3. intro activity에서 timer(handler)로 애니메이션 진행
4. timer에 도달하면 Intent로 main activity 호출.
5. main activity에서 Intro check 후 게임 화면 로딩.

이런 시퀸스 입니다.
내부적 흐름은 다음과 같습니다.

1. mainactivity.onCreate()
2. introactivity.onCreate()
3. mainactivity.onPause()
4. introactivity.onResume()
5. mainactivity.onStop()
////  애니메이션 진행 
6. introactivity.onPuase()
7. mainactivity.onRestart()
8. mainactivity.onResume()
9. introactivity.onStop()
10. introactivity.onDestroy()

의 순서로 진행되는 것이 맞습니다.

그러나 간혹 8번이 진행 된 이후 다음과 같이 메시지 호출 루틴이 변경될 때가 있습니다.

9-1. mainactivity.onPuase()
9-2. mainactivity.onDestroy()
9-3. mainactivity.onCreate()
9-4. mainactivity.onResume()

여러 내용을 찾아보고 activity lifecycle에 대해서도 찾아봤습니다.
거기에는 [activity가 onpause상태에서 메모리때문에 release(onDestroy)되는 경우가 있다. 이는 DVM에서 관리하므로 
사용자가 관여할 수 없다.] 라고 합니다.
이게 정확한 fact인지는 확인이 필요합니다만.

여기서 문제가 되는 부분은 glSurfaceView에서 문제가 생깁니다.
native code쪽에서 모든 데이터를 복원하였는데 onDestroy가 호출되면서 activity가 새로 만들어지는 순간 glSurfaceView도 재생성 됩니다.
때문에 native code에서 생성한 모든 opengl 값 역시 쓰레기가 되어버리는 거 같은데요.
보여지는 현상이 home버튼을 눌러서 나갔다가 다시 살리면 아무 화면도 안나오네요.;;

해결 방법이 있을까요?
혹시 이런 문제에 부딛히신 분이라도..ㅜㅜ 같이 연구좀 해봐요~