关于SharedPreferences小博带大家再来总结一下:SharedPreferences 是Android 中的内置API,允许我们存取基础类型数据,像:boolean,float ,int , long , string 。因为这些数据可以持久化的存在,即便在你的应用程序结束之后(注意:如果应用从手机上卸载掉后,该程序对应的SharedPreferences将会消失,保存在路径:/data/data//shared_prefs 目录下) 注意:User Preferences 用户配置 严格来说,SharedPreferences最好不要用来保存“用户配置”,比如,用户选择了什么铃声,是否自动更新等等。如果要为应用创建用户配置,可以使用PreferenceActivity,它可以用来创建“用户配置”。(PreferenceActivity用来创建程序中的设置界面) 如何在应用程序中获取SharedPreferences呢?
getSharedPreferences(name , mode) - 如果你的应用需要多个preferences文件可以使用该方法。该方法的第一个参数,用来区别不同的preferences文件。 比如: SharedPreferences sp1 = getSharedPreferences("sp_1" , Context.MODE_PRIVATE); SharedPreferences sp2 = getSharedPreferences("sp_2" , Context.MODE_PRIVATE); 是同一个应用程序的两个不同的配置文件。
该方法的第二个参数支持如下几种值:Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序或者是拥有相同user ID的应用读、写。 Context.MODE_WORLD_READABLE :指定该SharedPreferences数据能被其它应用程序读,但不能写。 Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其它应用程序读,但不能写。这两个变量在API17以后已经不建议使用了。创建全局可读文件是非常危险的事,这样会引起程序的安全漏洞。程序之间的交互应该更多的使用正规的途径,比如:ContentProvider, BroadcastReceiver, and Service。当程序通过备份和恢复后,并不能保证这种获取方式依然对该文件有效。文件创建模式:允许所有的其它程序来读取创建的文件。
Context.MODE_MULTI_PROCESS 在API11中添加,SharedPreferences加载标记:被设置后,在硬盘上的文件在被修改是将会被检查如果当前的SharedPreferences实例已经被加载进进程后。这种情况通常发生在,当程序有多个进程在修改同一个SharedPreferences文件的时候。通常来说这种方式在进程之间交互表现是非常好的。 在API 2.3之前,发布release版本时,这个标记是默认存在的,当发布release版本时。对于使用2.3以上的sdk进行编译的时候,如果想使用那么 必须明确的设置。