현재 Android 기기 용 RPG 게임을 개발하고 있으며 플레이어의 진행 상황을 저장하는 데 사용하는 직렬화의 맞춤 메소드를 구현했습니다. 저장 프로세스는 충돌이 발생하는 데 충분한 시간 인 1/2 초 정도 걸릴 수 있습니다 (기기의 전원이 꺼지는 등), 사용자 (앱 종료) 또는 잘못 작성된 펌웨어/ROM (커널 패닉) 등).예기치 않게 앱이 종료 될 때 데이터 손상 방지
플레이어의 데이터를 저장하는 동안 이전 플레이어 데이터를 덮어 씁니다. 즉, 충돌이 발생하고 저장 프로세스가 취소/중단되면 플레이어의 데이터가 손실됩니다. 이것은 분명히 이상적이지 않으며 앞으로 게임은 훨씬 더 많은 데이터를 저장할 것이고 저장 시간은 훨씬 길어질 것입니다. 이렇게하면 저장 프로세스 중에 충돌이 발생할 확률이 높아집니다.
앱을 다시 시작한 후에 게임이 다시 시작할 수 있도록 최소한의 데이터를 작성하기 때문에 저장 시간을 줄일 수 없습니다.
그러한 데이터 손상/손실이 발생하지 않도록 방지하기 위해 어떤 조치를 취할 수 있습니까?
임시 파일 세트에 저장하고 프로세스가 완료되면 이동/이름을 바꾸지 않고 이전 저장 파일을 삭제하는 이유는 무엇입니까? –
@SR_ 답변 해 주셔서 감사합니다. 그게 좋은 생각 인 것 같아. 내가 가진 유일한 선택 인 것 같아. 아마 이런 식으로 구현할 것입니다. – rodit