转载自:http://blog.sina.com.cn/s/blog_574b6f360102v2v1.html
Preferences是一种存储应用内数据的简便方法,比如,存储用户设定,游戏状态。Preferences的工作方法就像hash map,使用字符串作为关键字(key),其他原始类型的值作为该关键字对应的值。
在网页项目中,浏览器中运行游戏是,preference是目前唯一的存储游戏状态的方法。
Preferences prefs = Gdx.app.getPreferences("My Preferences");
其中My Preferences是一个文件名,会在应用目录下真实存在,对于安卓,即便应用升级,该文件仍会保留,但是如果应用删除,该文件会一起被删除。
应用可以使用多个preference,只要使用不同的名字创建即可。
prefs.putString("name", "Donald Duck");
String name = prefs.getString("name", "No name stored");
prefs.putBoolean("soundOn", true);
prefs.putInteger("highscore", 10);
注意第二句,在从preference中读数据时,可以使用缺省值,比如"No name stored",即如果"name"中没有数据,那么会使用该缺省值,作为该关键字读取的数据。
必须通过显式的调用flush()方法,才能是preference值真正写到文件中,永久保存
// bulk update your preferences
//then call flush to make it write to file
prefs.flush();
在Windows,Linux,OS X,preference都是以xml文件存储在用户的home目录下。
| Windows |
`%UserProfile%/.prefs/My Preferences`
位置为:
C:\Users\andrew>echo `%UserProfile%/.prefs/`
`C:\Users\andrew/.prefs/`
| Linux and OS X |
`~/.prefs/My Preferences`
文件名就是Gdx.app.getPreferences()的形参,你可以手动更改它,对调试很有用。