android应用的本地存储SharedPreferences类

android.content.SharedPreferences类,用于在本地保存数据,如用户登录的用户名和密码。SharedPreferences类将数据保存在一个xml文件中,文件存放在/data/data/<package name>/shared_prefs目录下,这跟AS3中的sharedObject有异曲同工之妙。另外一个类android.content.SharedPreferences.Editor用于生成或修改需要保存的数据。类似于SharedObject的data对象+sharedObject的flush()方法。
//创建异或获取一个已经存在的sharedPreferences对象(单例的)

SharedPreferences sharedPreferences = getSharedPreferences("mySP", Context.MODE_PRIVATE);
//创建数据编辑器

Editor editor = sharedPreferences.edit();
//传递需要保存的数据

editor.putString("username", "aaa");
editor.putString("password", “aaa”);
//保存数据

editor.commit();

生成的mySP.xml文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="username">aaa</string>
<string name="password">aaa</string>
</map>

getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称(如mySP,扩展名由Android自动生成;参数mode指定文件的操作权限:Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE可以被其他应用程序读写。


读取SharedPreferences中的数据:
SharedPreferences sharedPreferences = getSharedPreferences("mySP", Context.MODE_PRIVATE);
//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
String username = sharedPreferences.getString("username", "");
String password = sharedPreferences.getString("password", "");


如果访问其他应用中的Preference:该preference创建时必须指定Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITEABLE权限。通过该应用的Context访问其preference。


Context otherAppsContext = createPackageContext("<package name>", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("yourSP", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("somestring", "");
int age = sharedPreferences.getInt("someInt", 0);

也可以通过直接读取xml文件方式访问其他应用preference对应的xml文件,如: 
File xmlFile = new File(“/data/data/<package name>/shared_prefs/yourSP.xml”);


另,Activity的getPreferences(mode)方法,用于获取当前应用所创建的私有的SharedPreferences对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值