Android 数据持久化之 SharedPreferences 存储

news/2025/3/18 18:46:06/

1、概述

SharedPreferences 是 Android 提供的一种轻量级存储类,用于存储简单的键值对数据。它非常适合保存应用的配置信息、用户偏好设置等。SharedPreferences支持数据类型String、int、float、long、boolean、Set(字符串集合),它的数据以 XML 文件的形式存储在应用的私有目录中,文件名由开发者指定,因此数据具有较高的安全性。

2、保存数据

val editor = context.getSharedPreferences(“prefs_data”, Context.MODE_PRIVATE).edit()
editor.putString("serverIp", "127.0.0.1")
editor.putInt("port", 21)
editor.apply() // 异步提交
//editor.commit() // 同步提交,返回成功与否的结果
  • prefs_data: 是存储文件的名称,实际路径存储为 /data/data/<packageName>/shared_prefs/
  • Context.MODE_PRIVATE: 表示该文件只能被当前应用访问。

3、读取数据

val prefs = context.getSharedPreferences(“prefs_data”, Context.MODE_PRIVATE)
val serverIp = prefs.getString("serverIp", "127.0.0.1")  // 127.0.0.1为默认值
val port = prefs.getInt(“port”, 21)

4、删除数据

val editor = context.getSharedPreferences(“prefs_data”, Context.MODE_PRIVATE).edit()
editor.remove("serverIp") // 删除key为serverIp的数据
editor.apply()

5、清空数据

val editor = context.getSharedPreferences(“prefs_data”, Context.MODE_PRIVATE).edit()
editor.clear()
editor.apply()

6、注意事项

  • 线程安全:SharedPreferences 是线程安全的,可以在多个线程中同时读写。
  • 存储限制:SharedPreferences 适合存储少量的键值对数据(如用户设置)。如果需要存储大量数据,建议使用数据库(如 SQLite 或 Room)。
  • 数据安全性:SharedPreferences 数据存储在应用的私有目录中,其他应用无法访问。但如果设备被 root,数据可能会被篡改。如果需要存储敏感信息(如密码),建议进行加密处理。
  • 同步与异步
    editor.apply():异步提交更改,不会阻塞主线程。
    editor.commit():同步提交更改,会返回操作是否成功的布尔值,但可能会阻塞主线程。

http://www.ppmy.cn/news/1580131.html

相关文章

Secs/Gem第二讲 (基于secs4net项目的ChatGpt介绍)

好的&#xff0c;我们正式进入&#xff1a; 第二讲&#xff1a;深入 SECS4NET 项目结构——主机程序是怎么搭起来的&#xff1f; 关键词&#xff1a;项目结构、类图、通信类、事件处理、连接生命周期、异步机制 本讲目的 我们从源码入手&#xff0c;一步步搞懂&#xff1a; S…

【品铂科技】在高精度定位行业内的口碑怎么样?

1. ‌技术实力与行业认可‌ 公司自主研发的ABELL无线实时定位系统在复杂环境中&#xff08;如工业、司法监狱等&#xff09;展现出厘米级&#xff08;5-10厘米&#xff09;高精度定位能力&#xff0c;客户反馈系统稳定性强、抗干扰能力突出&#xff0c;成为行业技术标杆‌。参…

Spring Boot中@Valid 与 @Validated 注解的详解

Spring Boot中Valid 与 Validated 注解的详解 引言Valid注解功能介绍使用场景代码样例 Validated注解功能介绍使用场景代码样例 Valid与Validated的区别结论 引言 在Spring Boot应用中&#xff0c;参数校验是确保数据完整性和一致性的重要手段。Valid和Validated注解是Spring …

Spring中Bean的自动装配

1.自动装配的核心概念 定义&#xff1a; Bean的自动装配是Spring框架中用于自动满足Bean依赖的一种机制。通过自动装配&#xff0c;Spring容器会在应用上下文中为某个Bean寻找其依赖的Bean&#xff0c;从而减少手动配置的工作量。其核心目标是减少配置代码&#xff0c;通过类型…

jenkins 配置邮件问题整理

版本&#xff1a;Jenkins 2.492.1 插件&#xff1a; A.jenkins自带的&#xff0c; B.安装功能强大的插件 配置流程&#xff1a; 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“&#xff0c;是配置之后发件人的email。 2.配置系统自带的邮件A…

学习threejs,使用MeshFaceMaterial面材质容器

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshFaceMaterial 二…

便携版:随时随地,高效处理 PDF 文件

PDF-XChange Editor Plus 便携版是一款功能强大且极其实用的 PDF 阅读与编辑工具。它不仅支持快速浏览 PDF 文件&#xff0c;还提供了丰富的编辑功能&#xff0c;让用户可以轻松处理 PDF 文档。经过大神优化处理&#xff0c;这款软件已经变得十分轻便&#xff0c;非常适合需要随…

汽车PKE无钥匙进入系统一键启动系统定义与原理

汽车智能钥匙&#xff08;PKE无钥匙进入系统&#xff09;一键启动介绍 系统定义与原理 汽车无钥匙进入系统&#xff0c;简称PKE&#xff08;Passive Keyless Entry&#xff09;&#xff0c;该系统采用了RFID无线射频技术和车辆身份编码识别系统&#xff0c;率先应用小型化、小…