专栏首页上善若水020android初级篇之android存储数据方式:SharePreference的使用

020android初级篇之android存储数据方式:SharePreference的使用

SharePreference

轻量级的存储类,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。

创建

String preferenceName=“ziliao”;
SharedPreferences sharedPreferences = getSharedPreferences(preferenceName, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "林计钦");
editor.putInt("age", 24);
editor.commit();//提交修改   

备注:

1. Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
2. Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
3. MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
4. MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

访问SharedPreferences

访问本应用创建的SharedPreferences:

SharedPreferences sharedPreferences = getSharedPreferences(preferenceName, Context.MODE_PRIVATE);
String name = sharedPreferences.getString("name", "");
//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
int age = sharedPreferences.getInt("age", 1);

访问其他应用创建的SharedPreferences:

前提是其他应用创建该SharedPreferences时,使用了MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE 参数。

首先,先获取创建应用的Context,

Context otherAppsContext = createPackageContext("com.ljq.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("ljq", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 004-使用VMware vSphere Hypervisor 虚拟化一台服务器

    VMware ESX 服务器是在通用环境下分区和整合系统的虚拟主机软件。它是具有高级资源管理功能高效,灵活的虚拟主机平台。

    上善若水.夏
  • 022android初级篇之android的Context

    Interface to global information about an application environment. This is an abs...

    上善若水.夏
  • 004计算机图形学之多边形的扫描转换和区域填充

    多边形的扫描转换是指: 把多边形的顶点表示转换为点阵表示。也就是知道多边形的边界,如何找到多边形内部的点,即把多边形内部填上颜色。

    上善若水.夏
  • Android  SharedPreferences四种操作模式使用详解

    调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享. 调用...

    砸漏
  • 金三银四的面试黄金季节,Android面试题来了!

    当然, 也可以用 killProcess()和 System.exit()这样的方法。 对于多个 activity

    Android技术干货分享
  • 从云网融合到算力网络,新技术能否找到新方向?

    网络飞速更迭的今天,各种技术名词层出不穷。在你对确定性网络、时延敏感性网络、零信任网络等概念还晕头转向时,嘿嘿,没想到吧,又出了个算力网络。

    SDNLAB
  • 盘点Kafka从0.11.3到2.4.1的一些亮点【知识笔记】

    本文盘点下到Kafka 2.4.1版本以来的一些亮点,这些亮点或笔者实际中踩过的坑、或可能将来会在实践中使用、或个人关注的,点击官方发布日志连接查看全貌。

    瓜农老梁
  • 哪个更快:Java堆还是本地内存

    使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放。当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配。堆会被垃圾回收器进...

    哲洛不闹
  • 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的批量删除与更新

    系列回顾           前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作和一步一步教你使用AgileE...

    魏琼东
  • Python:统计系统剩余内存

    print "FreeMem/TotalMem:"+"%.2f" % ((FreeMem/TotalMem)*100)+'%'

    py3study

扫码关注云+社区

领取腾讯云代金券