可能是一个愚蠢的问题,但我需要做些什么才能使这段代码发挥作用:
package com.hobogames.WizardsDuel;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
public class GameData {
public static String version = "1.0.0";
public static String data[] = {"version"};
public static final int VERSION = 0;
public static Preferences prefs = Gdx.app.getPreferences("WizWars");
public static boolean played = (!prefs.get().isEmpty());
public static String getString(int key){
return prefs.getString(data[key]);
}
public static void storePrefs(){
prefs.putString(getString(VERSION),version);
prefs.flush();
}
}
特别是不起作用的部分是每次在Android设备上“播放”都是假的。在桌面上,第一次播放后就是如此。
答案 0 :(得分:2)
我怀疑你被static
状态在Android和桌面上表现不同。在Android上退出应用程序时,您确定VM会退出吗?如果您在Android上快速重新启动应用程序,系统将为新活动重复使用相同的Dalvik VM。由于static boolean
已初始化,因此不会重新运行初始化。如果你删除static
,那么当创建GameData
时这些东西会被重新运行(可能是它的实例没有存储在静态变量中),你应该得到更远。
请参阅http://bitiotic.com/blog/2013/05/23/libgdx-and-android-application-lifecycle/