Android 게임을 제작 중입니다. 이제, 메인 프래그먼트의 onDestroy()
메소드에서 사용자 상태 (SQLite와 일치, SharedPreferences의 사용자 기본 설정, 파일의 다른 데이터)가 변경되었습니다 (해당 프래그먼트는 항상 살아 있어야하며 다른 활동을 열 수 있습니다. 계정 단편 또는 재생 단편과 같은).앱의 상태를 저장하는 경우
뒤로 버튼을 통해 앱을 종료하면 메인 조각의 onDestroy()
이 호출되기 때문에 모든 것이 정상적으로 작동합니다.
홈 버튼을 통해 나가거나 메인 프래그먼트가 OS에서 종료 될 때 문제가 발생합니다. 이 경우 onDestroy()
이 호출되지 않으므로 게임의 상태는 저장되지 않습니다.
언제나 onDestroy()
대신에 onPause()
에 게임을 저장하면 해결할 수 있다는 것을 알고 있습니다. 그러나 제 경우에는 저장 작업이 매우 큽니다 (SQLite + SharedPreferences + 파일, 많은 데이터). onPause()
은 비효율을 의미합니다.
다른 방법으로 관리 할 수 있습니까?
onPause()가 호출 될 때 인 텐트의 모든 데이터를 전달한 다음 해당 서비스에서 나머지 작업을 수행합니다. 나는 서비스가 당신의 주요 작업을 활동에서 배경으로 옮길 것이라고 생각하지 않았다. – Neo