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页面!