Android中的SharedPreferences

news/2025/1/12 22:59:42/

Android中的SharedPreferences

在Android中,SharedPreferences是一种用于存储轻量级数据的机制。它允许应用程序存储和检索键值对数据,并且对于保存一些简单的配置信息、用户偏好设置或状态信息非常有用。SharedPreferences的数据存储是基于XML文件的,存储在应用程序的私有目录中,其他应用程序无法直接访问。

以下是SharedPreferences的一些重要概念和用法:

  1. 获取SharedPreferences对象:
    要访问SharedPreferences,需要获取SharedPreferences对象。通常,可以通过Context的getSharedPreferences()方法或者PreferenceManager的getDefaultSharedPreferences()方法来获取SharedPreferences对象。
// 使用Context的getSharedPreferences()方法获取SharedPreferences对象
SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", Context.MODE_PRIVATE);// 使用PreferenceManager的getDefaultSharedPreferences()方法获取默认SharedPreferences对象
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
  1. 存储数据:
    可以使用SharedPreferences.Editor对象来编辑SharedPreferences并存储数据。使用putXXX()方法将数据存储为键值对。常见的数据类型有Boolean、Int、Float、Long、String等。
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("is_logged_in", true);
editor.putString("username", "john_doe");
editor.putInt("score", 100);
editor.apply();
  1. 获取数据:
    使用SharedPreferences的getXXX()方法来获取保存在SharedPreferences中的数据。
boolean isLoggedIn = sharedPreferences.getBoolean("is_logged_in", false);
String username = sharedPreferences.getString("username", "");
int score = sharedPreferences.getInt("score", 0);
  1. 删除数据:
    如果需要从SharedPreferences中删除某个键值对,可以使用remove()方法。
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.remove("username");
editor.apply();
  1. 清除全部数据:
    如果需要清除SharedPreferences中的全部数据,可以使用clear()方法。
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.apply();

需要注意的是,SharedPreferences适用于存储一些简单的配置信息或用户偏好设置。对于大量复杂数据或需要频繁读写的情况,建议使用数据库或其他适合的数据存储方式。此外,由于SharedPreferences存储在应用程序的私有目录下,不适合存储敏感信息,因为其他应用程序是无法直接访问这些数据的。

总体而言,SharedPreferences是一种方便快捷的数据存储方式,适用于存储一些简单的配置信息和用户偏好设置,能够帮助开发者更好地管理应用程序的数据。


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

相关文章

【websocket - Tornado】简易聊天应用

1、背景 项目测试的过程中需要自己搭建一个webscoket站点,确保此类服务接入后台系统后访问不受影响。python的服务框架常用的有Flask、Django、Tornado,每个框架的侧重点不同,导致使用的场景就会有所差异。 Flask轻量级,采用常规的同步编程方式,需要安装其他模块辅助,主…

Palo Alto Networks® PA-220R 下一代防火墙 确保恶劣工况下的网络安全

一、主要安全功能 1、每时每刻在各端口对全部应用进行分类 • 将 App-ID 用于工业协议和应用,例如 Modbus、 DNP3、IEC 60870-5-104、Siemens S7、OSIsoft PI 等。 • 不论采用何种端口、SSL/SSH 加密或者其他规避技术,都会识别应用。 • 使用…

Unity小游戏——迷你拼图

游戏展示 拼图演示 资源: 链接:https://pan.baidu.com/s/1BGeSmRCO_WZRUyl3MxefGw 提取码:0n4a 一、玩法介绍 排列拼图碎片,拼出最后的图案。可以点住碎片的任意位置拖动;点击"重来"按钮,可以…

如何在轻量级RTSP服务支持H.264扩展SEI发送接收自定义数据?

为什么开发轻量级RTSP服务? 开发轻量级RTSP服务的目的是为了解决在某些场景下用户或开发者需要单独部署RTSP或RTMP服务的问题。这种服务的优势主要有以下几点: 便利性:通过轻量级RTSP服务,用户无需配置单独的服务器,…

区块链实验室(16) - FISCO BCOS实验环境

经过多次重复,建立一个FISCO BCOS实验环境。该环境是一个VMWare虚拟机,能够启动FISCO BCOS自创建的4节点区块链,不必下载依赖包即可编译Fisco Bcos目标文件,安装有VsCode1.81版本。 启动4节点的Fisco Bcos区块链 启动控制台 编译…

ZAFUACM - 23.8.5个人赛补题

文章目录 A - Lucky Conversion题意思路代码 B - Constanzes Machine题意思路代码 C - Maximum Median题意思路代码 D - Remove Extra One题意思路代码 E - A Determined Cleanup题意思路代码 F - Minimal k-covering A - Lucky Conversion 原题链接 题意 给出两个只包含“4…

Pytest简介及jenkins集成

一、pytest介绍 pytest介绍 - unittest\nose pytest:基于unittest之上的单元测试框架 自动发现测试模块和测试方法 断言使用assert表达式即可 可以设置测试会话级、模块级、类级、函数级的fixtures 数据准备 清理工作 unittest:setUp、teardown、…

【每日一题】24. 两两交换链表中的节点

【每日一题】24. 两两交换链表中的节点 24. 两两交换链表中的节点题目描述解题思路 24. 两两交换链表中的节点 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即&a…