Android libgdx首选项不起作用

时间:2013-06-14 02:50:21

标签: android libgdx preferences

可能是一个愚蠢的问题,但我需要做些什么才能使这段代码发挥作用:

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设备上“播放”都是假的。在桌面上,第一次播放后就是如此。

1 个答案:

答案 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/