Android开发之SharedPreferences的使用

Android SharedPreferences深度解析:从零到一的企业级开发指南 本文深入探讨Android SharedPreferences的使用及其在企业级开发中的应用,包括其基础操作、性能优化、多进程处理、数据加密等关键方面。通过详细代码示例和实战技巧,帮助开发者从零开始掌握SharedPreferences,并了解如何应对实际开发中的挑战。文中还对比了SharedPreferences与其他存储方案的特点,提供了优化建议和未来发展趋势分析。 阅读详情

安卓客户端的数据保存是一个很头疼的问题,虽然SQLite是一个轻量级,也很方便使用,但是在一些情况下使用起来仍然会觉得不方便。这就需要我们使用更轻量级的文件方式来保存一些数据。

针对上面的问题,SharedPreferences就是一个很好的解决方案:SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。

获取

SharedPreferences可以通过Context或者Activity来获取,实现的代码如下:
context.getSharedPreferences(string, Activity.MODE_PRIVATE);
也可以用Activity代替代码里面的Context。
需要注意的是,两种方式获取的SharedPreferences是有区别的。
Context下的getSharedPreferences方法获得的可以被同一应用下的Activity共享。
而Activity中的getSharedPreferences方法获得的SharedPreferences只能被该Activity使用。

模式

SharedPreferences有四种模式,
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

Android下的使用

通过SharedPreferences可以保存程序的某些配置信息,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。

数据读取

Java代码

String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
String hello = settings.getString("hello", "Hi");

这段代码中:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

通过名称,得到一个SharedPreferences,顾名思义,这个Preferences是共享的,共享的范围据现在同一个Package中,这里面说所的Package和Java里面的那个Package不同,貌似这里面的Package是指在AndroidManifest.xml文件中:
Xml代码

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.roiding.sample.note"
android:versionCode="1"
android:versionName="1.0.0">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.roiding.sample.note"
android:versionCode="1"
android:versionName="1.0.0">

这里面的package。后面的那个int是用来声明读写模式,这里设为0就可以了,表示这个数据时私有的。

boolean silent = settings.getBoolean(”silentMode”, false);

获得一个boolean值,这里就会看到用Preferences的好处了:可以提供一个缺省值。也就是说如果Preference中不存在这个值的话,那么就用后面的值作为返回值,这样就省去了我们的if什么什么为空的判断。

数据写入

Java代码

String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", true);
editor.putString("hello", "Hello~");
editor.commit();

有了上面数据读取的代码,这里面的就容易理解了,只是别忘了最后的commit();

总结

在Android系统中,ShredPreferences中的信息以XML文件的形式保存在 /data/data/PACKAGE_NAME/shared_prefs目录下。
我们可以通过文件浏览器查看,手机当中几乎所用的应用都使用了SharedPreferences。
大家可以去看一些优秀应用的数据,这可以帮助我们更好的设计自己的应用。

Android 中SharedPreferences的详解 一、SharedPreferences 首选项 介绍 存储软件的配置信息 存储的信息:很小,简单的数据;比如:自动登录,记住密码,小说app(返回后再次进入还是 原来看的页数),按钮的状态。 特点:当程序运行首选项里面的数据会全部加载进内容。 二、SharedPreferences的简单使用 1.布局文件中,写入两个按钮,保存到SP,和从SP中获取数据 布局代码的文件就不再写了。 2.看MainActivity的代码,里面有注释详解 package com.example.spdemo; import 阅读详情

相关推荐

AndroidStudio_安卓原生开发_sharedpreferences清空---Android原生开发工作笔记150

用sharedpreferences保存的信息,比如用户登录后的信息等等,但是发现当我记录一些信息的时候,会有串的情况,比如我需要选择一个人名,以后再做下一步操作,但是这里,我还没选的时候,因为之前在sharedpreferences中已经存过了并不会清除,所以这个时候就需要手动的清除一下. public void sharePreferencesClear(Context context) { SharedPreferences preferences = context..

添柴程序猿的专栏 1715

Android中SharedPreference的用法

记性不好,用于自查

weixin_59178995的博客 1158

多核系统核间通信(IPC)设计:从硬件机制到软件实现

在多核处理器与嵌入式系统设计中,核间通信(IPC)是实现计算资源协同工作的核心技术。其原理基于共享内存、硬件邮箱与中断等底层硬件机制,通过构建结构化的消息传递通道,实现核间高效、可靠的数据交换。该技术的核心价值在于打破多核间的壁垒,将分散的计算单元整合为有机整体,从而显著提升系统整体性能与响应能力。在工程实践中,IPC广泛应用于智能座舱、边缘AI网关、实时控制系统等场景,用于处理如仪表显示、AI推理、实时控制等复杂任务。本文聚焦于基于共享内存与VRING的消息队列实现,深入剖析缓存一致性、内存屏障等关键问题

weixin_27006759的博客 593

Android——SharedPreferences

1. 场景 首先我们来看看,SharedPreferences在什么场景比较适用: SharedPreferences是一种轻量级的存储,数据会写在本地的一个xml文件中,以键值对的形式存在,如果程序卸载,此文件也跟着卸载 以Map形式存放简单的配置参数 可以保存的数据类型有:int、boolean、float、long、String、StringSet。 保存位置:data/data/程序包名/share_prefs 主要用途: 1.保存应用的设置 例如:设置静音,下次进入还是静音 2.判断是否是第

Yawn 7056

微信聊天记录数据库解密实战:从WCDB到sqlcipher4的关键步骤解析

本文详细解析了微信桌面版聊天记录数据库的解密实战过程。通过逆向分析,定位了微信从WCDB框架到sqlcipher4加密的关键步骤,并成功提取了数据库密钥。文章重点介绍了如何通过动态调试、字符串定位等方法,追踪并验证sqlcipher4的加密密钥,最终实现对加密数据库文件的解密操作,为安全研究和数据恢复提供了技术参考。

weixin_29322553的博客 1071

神经影像和人类基因组关联分析的实践过程

现代全脑转录图谱为研究脑组织的分子相关性提供了前所未有的机会,可以使用无创神经成像进行量化。然而,将神经影像学数据与转录组测量相结合并不是直截了当的,需要仔细考虑才能做出有效的推断。在本文中,我们回顾了最近的研究工作,探讨了不同的方法选择如何影响成像转录组学分析的三个主要阶段,包括1)转录图谱数据的处理;2)将转录测量与独立衍生的神经影像学表型相关联;3)通过基因富集分析评估鉴定的关联的功能意义。我们的目标是为这个快速发展的领域促进标准化和可复制方法的发展。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2201

Android启动时使用SharedPreferences报错原因分析(转载请删除括号里的内容)

最近做TV开发,Android 9.0,Launcher应用刚启动时调用SharedPreferences,会出现黑屏或闪屏现象。log报错如下:原因:当设备已开机但用户尚未解锁设备时,Android 7.0 后将在安全的“直接启动”模式下运行,开机阶段读写设备将受影响。

空名先生 2994

Spring Boot Jar包加密实战:用ClassFinal与Jasypt打造代码安全堡垒

Spring Boot代码加密与配置保护方案 针对Spring Boot项目源码和配置易被反编译的风险,本文提出ClassFinal字节码加密+Jasypt配置加密的组合方案。ClassFinal通过Maven插件对核心代码加密,运行时需JavaAgent加载,反编译后仅保留空方法体;Jasypt则采用强加密算法保护敏感配置。方案优势包括: 双重保护:ClassFinal加密业务逻辑,Jasypt加密数据库密码等配置 灵活部署:支持密码启动、机器绑定等安全策略 平滑集成:兼容Spring生态,动态解密结合配

墨夶的博客 1092

Android-第十三节02SharedPreferences详解

一、SharedPreferences概述 二、SharedPreferences的使用方法 2.1写数据 2.2读数据 三、SharedPreferences案例-qq登录demo 3.1第一步,创建activity 3.2第二步,设置启动跳转页面 3.3第三步,设置登录界面 3.4存在的两个问题 问题一 问题二

H_xxxxd的博客 2783

如何用DeepSeek写年底工作总结?——从入门到精通的全流程指南

AI助手DeepSeek如何高效撰写工作总结 摘要:本文介绍如何利用DeepSeek智能AI助手高效完成工作总结写作。工作总结具有结构固定、语言规范、内容数据化三大特性,而DeepSeek的结构化生成、风格适配、数据整合和迭代优化四大核心能力与之完美匹配。文章提出"准备-搭架-填充-优化"四步工作法:1)精准输入岗位、时间范围等核心信息;2)先搭建逻辑清晰的提纲框架;3)分模块填充具体内容,突出数据与案例;4)通过风格润色和细节补充进行优化。通过合理运用多模态材料处理能力,DeepSee

通俗易懂学IT 286

YOLO与ORB-SLAM3的结合:实现动态环境下的目标检测与视觉SLAM

摘要: 本文介绍如何将YOLOv5目标检测与ORB-SLAM3视觉SLAM系统结合,实现动态环境下的机器人感知与定位。内容包括:源码下载(集成项目YOLO_ORB_SLAM3)、libtorch安装(PyTorch C++支持)、编译配置(解决路径依赖问题)、ROS环境下的部署(Noetic适配),以及使用TUM数据集的测试流程(RGB-D数据关联与运行)。重点解决编译时Torch路径错误、ROS与Anaconda冲突等问题,并展示系统运行效果。该整合方案为动态场景SLAM提供目标检测能力,未来可优化检测模

FJN110的博客 960

Android Studio开发 SharedPreferences 详解

SQLite 提供了完整的 SQL 功能,但比大型数据库系统更轻量。掌握这些基本语法后,您可以在 Android 应用中有效地存储和管理结构化数据。

百锦再的博客 1万+

系统架构设计师备考攻略

计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。 软考没有学历、专业、年龄、相关工作经验要求,你可以根据自身选择合适的去报名(也就是说你直接直接报高级),但是一次考试只能报一种。 计算机软件资格考试纳入全国专业技术人员职业资格证书制度的统一规划,实行统一大纲、统一试题、统一标准、统一证书的考试办法,每年举行两次。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位聘任相应专业技术职务(助理工程师、工程师、高级工程师)。

帅次的博客 7161

Android开发-SharedPreferences

Android开发-SharedPreferences

qq_51626500的博客 1582

基于STM32设计的电能质量控制系统_353

本项目基于STM32F103RCT6微控制器设计了一套电能质量控制系统,实现了对火焰、烟雾、环境温湿度、电压、电流及功率等多项参数的实时监测与报警。系统通过MQ2烟雾传感器、火焰传感器、SHT30温湿度传感器及电力参数采集模块采集数据,采用高电平触发有源蜂鸣器进行异常报警。采集的数据通过ESP8266无线模块以AP+TCP模式上传至基于Qt开发的手机APP和电脑上位机,实现远程实时监控和历史数据管理。系统配备1.44寸LCD显示屏,实现本地数据显示。软件采用Keil5开发,采用寄存器编程方式,提高系统响应速

253

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android开发基础:SharedPreferences的使用

项目中当需要存储数据时,除了使用Sqlite数据库,还有一种方案就是SharedPreferences,这种存储方案是Android中常用的存储方案,使用起来方便,功能也很完整,适合简单数据的存储。SharedPreferences值得开发者掌握它的使用流程,以便于在适合的场景中使用,本文旨在介绍SharedPreferences的使用流程,希望各位读者能从中获益。

qq_42948831的博客 473

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

安卓开发工程师-SharedPreferences 使用

是 Android 提供的一种轻量级的存储类,用于存储简单的键值对数据。它基于 XML 文件存储数据,每个应用都有自己的。数据默认存储在应用的私有目录下,无法被其他应用访问。如果需要更高的安全性,可以对数据进行加密。对于复杂数据结构,可以将其序列化为 JSON 或其他格式后存储。中,例如用户的登录状态、上次访问时间等。可以通过指定相同的文件名来共享。中,例如字体大小、主题颜色等。中,例如应用的主题、语言等。可以将用户的偏好设置存储在。可以将配置信息存储在。接口来监听数据变化。可以将临时数据存储在。

qq_62784677的博客 804

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android开发之SharedPreferences

一、 SharedPreferences 1 使用SharedPreference进行数据的存贮 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Andro

Andyの笔记 1799

Android开发中SharedPreferences的使用

在Android开发中,在储存少量的数据时,个人感觉SharedPreferences是最好的选择,SharedPreferences是以键值对的方式进行储存,支持boolean,int,float,long,String以及Set,使用方法如下: 先在类中进行声明: private SharedPreferences mSharedPreferences; //mEditor用于编辑Shar

ToBeTheOnlyOne的博客 497

Android开发中的SharedPreferences

在Android开发app过程中,总会有需要存储较多的一些琐碎东西,比如存储CheckBox是否勾选结果,存储临时文件与数据,数据量比较少,但是名目多。这样使用数据库就很麻烦,而且有一种杀鸡用牛刀的感觉。对于这种数据比较好的一种存储方式就是利用SharedPreferences对数据进行存储。也是在开发过程中使用的较为频繁的一种操作。这次文章所描述的就是利用SharedPref...

小晖的博客 1033

(二十一)安卓开发中数据存储之SharedPreferences详细讲解

SharedPreferences 是安卓开发中一种简单高效的存储方式,适合保存少量、结构简单的数据,如用户偏好、应用状态和少量配置信息。通过键值对的形式,开发者可以轻松实现数据的读写操作。结合上述代码示例和使用场景,SharedPreferences 在实际开发中非常实用,但需注意其性能和安全性限制,避免滥用。

cuijiying的博客 1943

Android开发入门——SharedPreferences的使用

一     简单介绍SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,是一种最容易理解和使用的存储技术,主要用于存储一些应用程序的配置参数,例如用户名.密码.自定义参数的设置等。 它是通过key/value(键值对)的形式将数据保存在XML文件中,该文件位于data/data//shared_prefs文件...

qq_41936913的博客 299

【转】Android开发之SharedPreferences的封装

Android开发之SharedPreferences的封装

qq_42443562的博客 153

安卓开发 SharedPreferences用法小结

sharedpreference经常用于保存关于应用配置信息等的键值对类型数据,这些数据将会以xml文件的形式,保存在(手机上)应用的shared_prefs文件夹下。 SharedPreferences的用法: 一、数据的获取         1、获取sharedpreferences:               SharedPreferences s=getSharedPrefere

zfan93的博客 1232

安卓开发封装SharedPreferences类

安卓开发中会常常使用到SharedPreferences存储方式来存储一些控件的状态或者是密码信息,因此我们就需要对SharedPreferences类进行封装,一劳永逸,也可以简化代码,使代码变得简洁。工具类的封装-SharedPreferences封装下面是代码package com.gougoucompany.clarence.smartbutler.utils; import andro...

you are sherlocked by me! 721
上一篇: Bridge模式
下一篇: 有序化(Serializable)的讲解
Kiplening
博客等级 码龄14年 7粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值