안드로이드 개발 질문/답변
(글 수 45,052)
cocos2d-x로 게임을 개발하고 있습니다.
게임중 슬립 모드로 전환 되거나 홈키눌러 바탕화면으로 나온후
다시 게임으로 복귀 할때 시간이 오래 걸립니다. 대략 30초 정도 ;
확인을 해보니 메모리를 적게로드한 부분에선(메인메뉴등의 화면)
복귀시간이 짧은데 메모리를 많이 로드한 부분에선(게임중)엄청
오래 걸리네요...
@Override
protected void onResume() {
super.onResume();
mGLView.onResume(); //private Cocos2dxGLSurfaceView mGLView;
}
확인해보니 onResume()함수안에서
cocos2dx의 onResume()함수(mGLView.onResume();) 호출시
엄청난 시간이 걸리네요...
혹시 슬립모드 복귀시 빠른 시간안에 가능한 처리
방법이 따로 있는건가요?
전 GlSurfaceView를 pause를 시키지 않는 방법을 사용 하였습니다.
Cocos2dxGLSurfaceView.java 에서
public void onPause(){
queueEvent(new Runnable() {
@Override
public void run() {
mRenderer.handleOnPause();
}
});
// super.onPause();
}
이렇게 주석처리 .... 이렇게 하면 현재 랜더 모드 때문에 앱이 죽는 이슈가 있는데 이는.
@Override
protected void onPause() {
super.onPause();
mGLView.setRenderMode(mGLView.RENDERMODE_WHEN_DIRTY);
mGLView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mGLView.setRenderMode(mGLView.RENDERMODE_CONTINUOUSLY);
mGLView.onResume();
}
위와같이 랜더모드를 바꿔 주었다가 다시 복구 시켜주시면 됩니다.
일종의 꼼수죠 ;;; 일단 상용 게임에서 사용중인데 이상은 없네요.