android 数据存储之SharePreference 的几种方式

1. 常见的 getSharedPreferences(String filename,mode)  

指定sp文件的名称,生成的文件名为 filename.xml

2.getPreferences(mode)

getPreferences只有一个参数,不能指定文件名,文件名固定为
当前Activity的名字,不包含包名。

3.PreferenceManager.getDefaultSharedPreferences(Context)

该SharedPreferences MODE默认为MODE_PRIVATE,而且生成文件名为
<包名>_preferences.xml    

------------------三个mode

MODE_PRIVATE 私有的,不允许其他程序访问该xml文件。
MODE_WORLD_READABLE 其他程序可以读取
MODE_WORLD_WRITABLE 其他程序可以写 

这里其他程序如何访问呢?
有两种方式:
第一种,在第二个程序中通过File:

File f = new File("/data/data/包名/shared_prefs/xxx.xml"); 
FileInputStream fis = new FileInputStream(f);//在被访问程序中,MODE_WORLD_READABLE 
FileOutputStream fos = new FileOutputStream(f);//在被访问程序中,MODE_WORLD_WRITABLE

第二种,通过被访问程序的Context对象。

Context otherContext = createPackageContext( 
"com.anjoyo.sharedpreference", CONTEXT_IGNORE_SECURITY);

第一个参数为要创建context的包名,第二个参数为创建时忽略安全问题。

SharedPreferences sp = otherContext.getSharedPreferences 
("loginsetting", MODE_WORLD_READABLE); 
String name = sp.getString("name", ""); 
String pwd = sp.getString("pwd", "");
原文地址:https://www.cnblogs.com/shoneworn/p/4505741.html