您的位置:首页 > Web前端

public abstract SharedPreferences getSharedPreferences (String name, int mode)

2013-08-12 15:42 435 查看
http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String,
int)

public abstract SharedPreferences getSharedPreferences (Stringname, intmode)

函数描述:

读写 名为"name"的xml文件中内容(具体目录为/data/data/你的包名/shared_prefs文件夹下),本函数会返回一个SharedPreferences对象,通过它你可以在代码里读写里面的键值对。即使可以被多个线程调用,也是一个名字对应一个对象(单例模式)。如果对象里的值一改变,调用者们会实时发现变化(线程安全)。

参数

name:访问的文件名,如果这个文件不存在,当你调用SharedPreferences.edit(),Editor.commit(),这两个方法后这个文件会自动创建,会提交更改。

mode:访问模式,0或者
MODE_PRIVATE
是默认的私有模式(只有这个程序可以访问),
MODE_WORLD_READABLE
MODE_WORLD_WRITEABLE
用来控制其他应用程序的访问权限,
MODE_MULTI_PROCESS
表示可以多个应用程序访问,不过只有在Android2.3以下支持,其他版本是关闭的。

返回

返回一个SharedPreferences对象,通过它你可以在代码里读写里面的键值对。

SharedPreferences对象的使用方法:

将数据保存至SharedPreferences:

SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);

Editor editor=preferences.edit();

editor.putString("name", "xiaoNi");

editor.putString("age", "24");

editor.commit();

从SharedPreferences获取数据:

SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);

String name=preferences.getString("name", "defaultname");

String age=preferences.getString("age", "0");

网上有个什么MODE_APPEND,googleAPI getSharedPreferences函数里根本就没有这一项,这项是对文件的操作。

而且
MODE_WORLD_READABLE
MODE_WORLD_WRITEABLE
已经不推荐了。所以你可以无脑写Context.MODE_PRIVATE。

(为啥不推荐呢,应用程序共享数据推荐用
ContentProvider
,
BroadcastReceiver
,
and 远程
Service
,这些正式的方式,SharedPreferences属于非正式的一种)

Activity中有个方法

activity.getPreferences(Context.MODE_PRIVATE);


相当于context.getSharedPreferences("你activity名",Context.MODE_PRIVATE);


最后附两张图



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐