当前位置: 首页 > news >正文

Android 数据持久化(SharedPreferences)

一、Android 数据持久化概述

1. 为什么需要数据持久化?
  • 手机内存是易失性的,应用关闭或设备重启会导致数据丢失。

  • 持久化技术可将数据保存到内部存储、外部存储或数据库中,确保数据长期存在。

2. Android 数据存储方式
  • 文件存储:适用于少量数据。

  • SharedPreferences:适用于键值对数据。

  • SQLite 数据库:适用于结构化数据。

  • ContentProvider:用于应用间数据共享。

  • 网络存储:将数据存储到网络服务器。


二、SharedPreferences 详解

1. 基本概念
  • 以 键值对(key-value) 形式存储数据。

  • 支持的数据类型:intfloatlongbooleanStringStringSet

  • 存储的数据类型与读取时一致。

2. 文件格式与存储位置
  • 数据以 XML 文件 形式保存。

  • 存储路径示例

    data/data/包名/shared_prefs/文件名.xml
  • 应用被卸载时,该文件会被删除。

3. 适用场景
  • 存储简单、孤立的数据。

  • 存储文本形式的数据。

  • 需要持久化的数据(应用重启后仍有效)。

三、SharedPreferences 的使用

1. 获取 SharedPreferences 实例
SharedPreferences sp = getSharedPreferences("name", mode);
  • name:文件名。

  • mode

    • MODE_PRIVATE:仅当前应用可访问(默认)。

    • MODE_APPEND:通常不用于 SharedPreferences。

2. 写入数据
  • 需通过 SharedPreferences.Editor 对象操作:

    SharedPreferences.Editor editor = sp.edit();
    editor.putString("name", "张三");
    editor.putInt("age", 20);
    editor.apply(); // 或 editor.commit();
  • commit():立即写入(同步)。

  • apply():后台写入(异步)。

3. 读取数据
String name = sp.getString("name", "默认值");
int age = sp.getInt("age", 0);
boolean remember = sp.getBoolean("remember", false);

四、代码示例

// 获取实例
SharedPreferences sp = getSharedPreferences("MyPreferences", MODE_PRIVATE);// 写入数据
SharedPreferences.Editor editor = sp.edit();
editor.putString("key_name", "value");
editor.putInt("key_age", 30);
editor.apply();// 读取数据
String name = sp.getString("key_name", "default");
int age = sp.getInt("key_age", 0);// 输出
Log.d("Preferences", "Name: " + name + ", Age: " + age);

http://www.dtcms.com/a/529047.html

相关文章:

  • 四、高效注意力机制与模型架构
  • 沧州做网站公司兰州网站建站
  • C++ STL:string类(1) |了解string|编码|常用接口|迭代器|算法查找|auto|范围for
  • ESP32 Linux 开发环境
  • 网站建设全国排名alexa排名前三十
  • 声乐基础知识学习
  • Redis底层原理-持久化【详细易懂】
  • 现在建网站可以拖拉式的吗深圳住房建设网站
  • 流量打不开网站怎么办营销型企业网站 网络服务
  • 如何用ps做网站ui如何在云主机上建设网站
  • 营销网站建设818gx做商城网站多少钱
  • 【C/C++】动态加载(dlopen)和直接链接 库的区别
  • 集团内部协同项目管理模式整理表
  • 基于yolov11的机场跑道异物检测系统python源码+pytorch模型+训练数据集+精美GUI界面
  • 【开题答辩全过程】以 滨海游泳馆管理系统为例,包含答辩的问题和答案
  • 阿里云网站实名认证设备租赁业务网站如何做
  • 2025年9月电子学会全国青少年软件编程等级考试(scratch图形化四级)真题及答案
  • 中国万网icp网站备案专题wordpress播放器问题
  • MATLAB图形绘制基础(一)二维图形
  • 软件开发和网站建设泰安网站设计
  • 一文读懂 AUTOSAR 中的 CAN 模块:通俗图解与发送接收全流程
  • 弹窗网站制作器中国空间站
  • 网站建设会议纪要wordpress创建页面地址设置
  • 软装设计素材网站地方宣传网站建设的必要性
  • Auto CAD二次开发——创建圆弧对象
  • 深度解析pose_add:三维空间位姿复合运算的核心实现
  • LeetCode 153. 寻找旋转排序数组中的最小值
  • 做外汇看什么网站怎样做建网站做淘客
  • 网站设计说明书800字o2o网站做推广公司
  • 【Linux】传输层协议UDP