2013-05-16 2 views
2

Android 게임을 제작 중입니다. 이제, 메인 프래그먼트의 onDestroy() 메소드에서 사용자 상태 (SQLite와 일치, SharedPreferences의 사용자 기본 설정, 파일의 다른 데이터)가 변경되었습니다 (해당 프래그먼트는 항상 살아 있어야하며 다른 활동을 열 수 있습니다. 계정 단편 또는 재생 단편과 같은).앱의 상태를 저장하는 경우

뒤로 버튼을 통해 앱을 종료하면 메인 조각의 onDestroy()이 호출되기 때문에 모든 것이 정상적으로 작동합니다.

버튼을 통해 나가거나 메인 프래그먼트가 OS에서 종료 될 때 문제가 발생합니다. 이 경우 onDestroy()이 호출되지 않으므로 게임의 상태는 저장되지 않습니다.

언제나 onDestroy() 대신에 onPause()에 게임을 저장하면 해결할 수 있다는 것을 알고 있습니다. 그러나 제 경우에는 저장 작업이 매우 큽니다 (SQLite + SharedPreferences + 파일, 많은 데이터). onPause()은 비효율을 의미합니다.

다른 방법으로 관리 할 수 ​​있습니까?

+0

onPause()가 호출 될 때 인 텐트의 모든 데이터를 전달한 다음 해당 서비스에서 나머지 작업을 수행합니다. 나는 서비스가 당신의 주요 작업을 활동에서 배경으로 옮길 것이라고 생각하지 않았다. – Neo

답변

0

이 솔루션을 사용해 보셨습니까? http://nisha113a5.blogspot.com/2012/01/intercept-home-key-android.html?

홈 버튼을 눌렀을 때 눌러보십시오.이 순간 사용자 상태가 저장됩니다.

+0

나는 그것을 시험해 보았지만, 더 이상 4.0 버전에서는 작동하지 않는다. – LopezAgrela

+1

어쨌든 응용 프로그램을 종료하기위한 바 알림을 누르기 만하면 홈 버튼을 차단하는 것이 충분하지 않습니다. – LopezAgrela

관련 문제