欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android本地存储SharedPreferences详解

程序员文章站 2023-12-02 18:04:28
android本地存储sharedpreferences详解 存储位置 sharedpreferences数据保存在: /data /data/

android本地存储sharedpreferences详解

存储位置

sharedpreferences数据保存在: /data /data/<package_name> /shared_prefs 文件夹下,以xml格式保存,根元素为:<map />。文件名称为获取sharedpreferences实例时传递的參数值。

<map>
<int name="key" value="value" />
<string name="key" > value </string>
</map>

获取实例

shareperferences是一个接口,context实现了api:getsharedpreferences(string, int);这个api依据string返回一个shareperferences实例。同样的string返回的shareperferences的实例是同样的。此处strign指定的是存储数据的xml文件的名称。

activity实现了getpreferences(int),这种方法就是默认使用activity的class name作为string调用 getsharedpreferences(string, int)。

//指定该sharedpreferences数据仅仅能被本应用读、写。

context.mode_private 
//指定该sharedpreferences数据也能被其它应用程序读,但不能写。
context.mode_world_readable 
//指定该sharedpreferences数据也能被其它应用程序读、写。
context.mode_world_writeable
//文件是否存在,存在那么追加,否则新建
context.mode_world_append

//推断sharedpreferences是否包括特定key的数据。
boolean contains(string key) 
//获取sharedpreferences里所有的key-value对。
map<string,?> getall() 
//获取指定key相应的value,假设key不存在。则返回默认值defvalue。

xxx getxxx(string key, xxx defvalue) 



sharedpreferences接口本身未提供写入数据的能力,而是通过其内部接口。其调用sharedpreferences.edit() 方法就可以获得它所相应的 sharedpreferences.editor对象。editor有例如以下向sharedpreferences写入数据的方法:


//清空sharedpreferences里全部数据。
editor.clear() 
//向sharedpreferences里存入指定key相应的数据。

editor.putxxx(string key, xxx value) 
//删除sharedpreferences里指定key相应的数据项。


editor.remove(string key)
//当editor编辑完毕后,调用该方法提交改动。 
boolean editor.commit()



读写其它应用的sharedpreferences

1.创建其它应用的相应 context。

context usecontext =createpackagecontext("package_name",context.context_ignore_security);
2.调用其它应用的 context的 getsharedpreferences()方法获取 sharedpreferences对象。

3.调用其它应用的 sharedpreferences.edit()方法获得对应sharedpreferences.editor对象。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!