Android本地存储SharedPreferences详解
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对象。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
推荐阅读