在android当中,SharedPreferences是一种轻量级数据存储,以键值对形式操作。 SharedPreferences文件保存在/data/data/<packagename>/shared_prefs目录下,即一个xml文件。 支持3种访问模式 ●MODE_PRIVATE 私有、新内容覆盖原内容 ●MODE_APPEND 新内容追加到原内容 ●MODE_WORLD_READABLE 全局读、允许其他应用程序读取 ●MODE_WORLD_WRITEABLE 全局写、允许其他应用程序写入,会覆盖原数据 这点没验证通过,其他程序不能修改,只能读 定义SharedPreferences Java代码 SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME,MODE); //PREFERENCE_NAME与Android系统中保存的文件名相同 If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit()). 第一次调用该函数并不会立即在系统创建xml文件,当获取editor并commit时,xml创建。 SharedPreferences修改 Java代码 SharedPreferences.Editor editor=sharedPreferences.edit(); //通过SharedPreferences.Edior类修改editor.putString("Name","Tom"); editor.putInt("Age",20); editor.putFloat("Height",); editor.commit(); //调用Commit()函数保存修改内容 获取SharedPreferences内容 SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);//通过getSaredPerences取SharedPreferences String name=sharedPreferences.getString("Name","Default Name"); //第二个参数为无法获取时的缺省值 int age=sharedPreferences.getInt("Age",20); float height=sharedPreferences.getFloat("Height",); 访问其他应用程序的SharedPreferences需要的3个条件: ●访问模式为全局读或全局写 ●需要知道共享者的包名和SharedPreferences名称,通过Context获取对象 ●需要知道每个数据的名称和数据类型以读取数据
Java代码 Context c=null;try{ c=this.createPackageContext(PREFERENCE_PACKAGE,Context.CONTXT_IGNORE_SECURITY); }catch(NameNotFoundException e){ e.printStackTrace(); } SharedPreferences sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE); |
|