2013-06-14 2 views
1

Возможно глупый вопрос, но то, что мне нужно изменить, чтобы сделать этот код работать:Android libgdx предпочтения не работает

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. На рабочем столе это правда после первой игры.

ответ

2

Я подозреваю, что вы укусили состояние, которое ведет себя по-другому в Android и на вашем рабочем столе. Вы уверены, что VM выходит, когда вы выходите из приложения на Android? Если вы быстро перезапустите приложение на Android, система будет повторно использовать ту же Dalvik VM для новой активности. Поскольку static boolean уже инициализирован, инициализация не выполняется повторно. Если вы удалите static, этот материал снова будет запущен при создании GameData (предположительно, экземпляры его не сохраняются в статических переменных), вы должны пройти дальше.

http://bitiotic.com/blog/2013/05/23/libgdx-and-android-application-lifecycle/ См

+0

Я только что открыл свою игру на свой телефон еще раз, и он не прыгал к учебнику первым, как это было ранее. Это означает, что вы, вероятно, правы, и я быстро открыл его. Поэтому я добавил метод инициализации, который работает. – csga5000

Смежные вопросы