android数据存储(一)之Shared Preferences及注意事项

来源:互联网 发布:mac 日历 广告 编辑:程序博客网 时间:2024/05/01 12:03

Shared Preferences 经常用来保存应用程序的一些属性设置,在android平台常用于存储较简单的参数设置。

先说说文件创建的几个模式

文件创建模式:Activity.MODE_APPEND
如果该文件已经存在,然后将数据写入,而不是抹掉它现有文件的末尾。

文件创建模式:MODE_PRIVATE
默认模式,在那里创建的文件只能由应用程序调用,即为私有的

文件创建模式:Activity.MODE_WORLD_READABLE
允许所有其他应用程序有读取和创建文件的权限。


文件创建模式:Activity.MODE_WORLD_WRITEABLE
允许所有其他应用程序具有写入、访问和创建的文件权限。(注意!写入的时候会覆盖原来的所有内容)


详细用法如下:

保存数据:

SharedPreferences saveState = getPreferences(Activity.MODE_PRIVATE);SharedPreferences.Editor editor = saveState.edit();editor.putString("msg", "this is first message");editor.commit();

获取数据:

SharedPreferences setting = getPreferences(Activity.MODE_PRIVATE);String message = setting.getString("msg", null);//第一个参数为键值对的键,第二个参数为默认值,即如果查询的键值对不存在,则会返回第二个参数

如果你的程序通过使用preferences来存取数据,那么这些数据究竟放到哪里了呢?

其实,系统每安装一个应用程序时,在/data/data 目录下都会产生一个文件夹,如果应用程序中使用了preferences,那么便会在该文件夹下产生一个shared_prefs文件夹,其中就是我们保存的数据。(文件名好像是用调用shared Prefenences的activity名字命名的,后缀名为.xml)


注意!!使用Shared Preferences保存的数据只能在保存的页面获取,在其他页面不能获取。

证明:首先有两个activity分别为界面一和界面二,界面二是从界面一跳转过去的。

1、首先在界面一获取msg的值为null,界面二获取msg的值为null。

2、在界面二保存一对键值对putString(“msg”,"this is second msg");

3、再次,在界面二获取msg的值为“this is second msg”,返回界面一,在界面一获取msg的值为null。

4、然后在界面一保存一对键值对putString(“msg”,"this is first msg");

5、再次,在界面一获取的msg的值为"this is first msg",跳转到界面二,在界面二获取msg的值为"this is second msg"

由此得知,不同页面保存数据的地方是不一样的,所以要谨慎使用。



0 0
原创粉丝点击