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", "");
时间: 2024-10-12 17:21:17