SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问。一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以通过Preferences来保存,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。
在Android系统中,这些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME /shared_prefs 目录下。
下面以是否第一打开应用为例:
判断是否打开:
SharedPreferences sf = getSharedPreferences("appname", Context.MODE_PRIVATE);
boolean b = sf.getBoolean("isfirst", true);
if (b) {
Intent i = new Intent();
i.setClass(getApplicationContext(), UserGuideActivity.class);
startActivity(i);
} else {
Intent intent = new Intent();
intent.setClass(getApplicationContext(),mainActivity.class);
startActivity(intent);
}
在UserBuideActivity中,进行首选项的存储,保证下一次打开时,不会再进行引导页面。
SharedPreferences sf = getSharedPreferences("appname", Context.MODE_PRIVATE);
boolean b = sf.getBoolean("isfirst", true);
if(spf.getBoolean("isfirst", true)){
Editor editor = spf.edit();
editor.putBoolean("isfirst", false);
editor.commit();
Intent intent = new Intent();
intent.setClass(getApplicationContext(), mainActivity.class);
startActivity(intent);
}
这样,再下一次打开后,就可以得到isfrist 值为false,直接进入main页面!