2013-08-23 3 views
2

Libgdx 엔진에서 안드로이드 게임을 만들었습니다 ... 잠시 후 일부 앱 킬러에서 앱을 죽인 후에 설정에 저장되는 게임 옵션이 손실 된 것으로 나타났습니다. Android 설정에서 '강제 종료'를 수행하면 ...Android libgdx prefs lost lost

이 문제를 방지 할 수있는 방법이 있습니까? "데이터 지우기"를 한 번도 해보지 않았습니다. "강제 종료"...

환경 설정에 대한 좋은 대안이 있습니까?

정말 이상한 문제 ...

내가 얻을의 환경 설정에 값을 넣어하는 방법이 ...

/** Shared preferences */ 
public static final Preferences prefs = Gdx.app.getPreferences("MyPreferences"); 

/** Earned experience points */ 
public static int experiencePoints=SettingsManager.prefs.getInteger(EXPERIENCE_POINTS, 0); 

// Store new experience points 
SettingsManager.prefs.putInteger(EXPERIENCE_POINTS,experiencePoints); 

도움말 ...

답변

3
  1. 당신은 단지를 업데이트하고 환경 설정 객체를 메모리에 저장
  2. 환경 설정을 정적 필드에 저장합니다.

    SettingsManager.prefs.flush(); 
    

    당신은 메인 UI 스레드에서의 환경 설정이 일치 할 때이 작업을 수행하고, 이상적으로는 안 :

가 첫 번째 문제를 해결하려면, 당신은 디스크에 환경 설정 "플러시"할 것 . https://code.google.com/p/libgdx/wiki/Preferences#Flushing

활동 필드 (Android의 Libgdx 앱)가 종료되었지만 그 기반이되는 Dalvik VM이 종료되지 않고 새 활동이 동일한 VM에서 시작될 때 문제가 발생할 수 있습니다. 환경 설정 객체가 Libgdx 상태에 대한 내부 참조를 저장하는 것이 확실하지 않은 경우 활동 사이에 오래 걸릴 수도 있지만 그 결과를 실제로 이해하지 않는 한 안드로이드 게임에서 정적 필드를 사용하지 않는 것이 안전합니다.