안드로이드는 홈키나 전화 받을 때 라이프 사이클로 인해


onPause()과 onResume() 함수가 호출된다.


이것들이 호출되면 화면상에 보여지고 있는 텍스쳐를 다 날려버리고


다시 로딩한다.


그래서 홈키로 인해 나갔다가 다시 들어가면 로딩시간이 길어지게 된다.


해결 방안으로는


CoCos2dxGLSurfaceView.java에서


@Override
    public void onResume() {   
        //super.onResume();
        this.queueEvent(new Runnable() {
            @Override
            public void run() {
                Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleOnResume();
            }
        });
    }

    @Override
    public void onPause() {
        this.queueEvent(new Runnable() {
            @Override
            public void run() {
                Cocos2dxGLSurfaceView.this.mCocos2dxRenderer.handleOnPause();
            }
        });
       
        //super.onPause();
    }


super.onResume(), super.onPause() 호출 하는 부분을 주석 처리하면


홈키 눌렸다가 들어가도 전혀 로딩시간이 필요가 없다,


다시 로딩을 안하니 테스트로 하루종일 해봤으나 별 문제가 없어 보이나


추천하지 않는다. 왠지 불안하니깐.


그래서 더 찾아보니


안드로이드 3.0 이상 부터 지원하는 함수 하나가 추가가 되어 있었다.


setPreserveEGLContextOnPause 이 함수이다.


이함수에서 setPreserveEGLContextOnPaus(true); 로 셋팅하면


텍스쳐를 날려버리지 않고 들고 있게된다.


Posted by 부우산사나이
: