iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >简介Android应用中sharedPreferences类存储数据的用法
  • 761
分享到

简介Android应用中sharedPreferences类存储数据的用法

数据存储Android 2022-06-06 09:06:43 761人浏览 独家记忆
摘要

在Android开发中,经常会遇到这样一种情况,即需要将用户偏好设置(如用户偏好的app色彩主题)、与特定登录用户相关的设置(如不同登陆用户的偏好)、整个app的生命周期内的设

Android开发中,经常会遇到这样一种情况,即需要将用户偏好设置(如用户偏好的app色彩主题)、与特定登录用户相关的设置(如不同登陆用户的偏好)、整个app的生命周期内的设置(如首次登陆显示介绍页)存储在用户本地,那么首先考虑使用sharedPreferences。这是Android中专门用来存储轻量级键值对数据的类,会在本地以xml文件形式存储。

一、 运行机制
接口:SharedPreferencesImpl在该接口中,定义了一个Editor接口、一个edit方法、多个get方法、一个监听器用于监听内容变更。其中,Editor接口主要用来写入数据,edit方法用来对外提供一个editor实例,get方法用来获取键值对,监听器用于实现类中监听。
接口:Editor接口中含有多个put方法、一个commit方法等。之所以要独立出一个接口来进行写操作,是为了保证数据写入的完整性。主要考虑的场景是如果同时要写入多条键值对,这些键值对不会逐条写入文件中,而是先打包在一起,再一次性写入,即one-at-a-time。具体实现方法是在Editor实现一个HashMap来暂存要写入的数据,先把所有键值对写入内存中的该hashMap中,然后再一次性写入文件中。
该过程可以概括为先commitToMemory, 再writeToFile。

二、 使用方法
首先,想写入键值对,要先获取一个sharedPreferences对象。
此时需要提供两个要素:context上下文对象,对应的文件名字。
这里,我们要明确这些键值对的实际存储方式:它们是以多个文件的形式存储: /data/data/{packageName}/shared_prefs/{name}.xml。其中,实际的{name}.xml是在程序中指定的。
那么,我们只要调用context.getSharedPreferences(name, mode)即可获取到所在packageName文件夹里对应的name.xml文件映射过来的SharedPreferences对象。其中,mode是读取文件的方式。
示例:
1、使用SharedPreferences保存数据方法如下:


//实例化SharedPreferences对象(第一步) 
SharedPreferences mySharedPreferences= getSharedPreferences("test", 
Activity.MODE_PRIVATE); 
//实例化SharedPreferences.Editor对象(第二步) 
SharedPreferences.Editor editor = mySharedPreferences.edit(); 
//用putString的方法保存数据 
editor.putString("name", "Karl"); 
editor.putString("habit", "sleep"); 
//提交当前数据 
editor.commit(); 
//使用toast信息提示框提示成功写入数据 
Toast.makeText(this, "数据成功写入SharedPreferences!" , Toast.LENGTH_LONG).show();

执行以上代码,SharedPreferences将会把这些数据保存在test.xml文件中,可以在File Explorer的data/data/相应的包名/test.xml 下导出该文件,并查看。
2、使用SharedPreferences读取数据方法如下:


//同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象 
SharedPreferencessharedPreferences= getSharedPreferences("test", 
Activity.MODE_PRIVATE); 
// 使用getString方法获得value,注意第2个参数是value的默认值 
String name =sharedPreferences.getString("name", ""); 
String habit =sharedPreferences.getString("habit", ""); 
//使用toast信息提示框显示信息 
Toast.makeText(this, "读取数据如下:"+"\n"+"name:" + name + "\n" + "habit:" + habit, 
Toast.LENGTH_LONG).show(); 

三、理解
我们可以简单的理解为:在手机本地某个地方会存放我们自定义的xml文件,每个文件用来存放相关的键值对数据。比如我们希望存储用户的偏好设置,即可创建一个名为UserPref的SharedPreferences并读写即可。

四、比较getSharedPreferenced和getPreference
getSharedPreferenced获取的文件是在package内都可以使用context对象获取到的,只需要指定name就可以获取到特定的xml文件。
但是,getPreference方法是专门用在Activity内部的,创建的xml文件只能在该Activity上下文内获取,而且不需要指定名字,这个xml文件只属于这个Activity。
其它就没有区别了。唯一区别就是一个权限域的区别。
示例:


 Context context = getActivity();
 SharedPreferences sharedPref = context.getSharedPreferences("userPref", MODE_PRIVATE);
 SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
您可能感兴趣的文章:android开发教程之实现toast工具类Android应用中使用SharedPreferences类存储数据的方法Android通过"记住密码"功能学习数据存储类SharedPreferences详解及实例android实用工具类分享(获取内存/检查网络/屏幕高度/手机分辨率)Android屏幕分辨率工具类使用详解封装的android监听手指左右滑动屏幕的事件类分享Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】Android开发之多媒体文件获取工具类实例【音频,视频,图片等】android 一些工具类汇总Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】


--结束END--

本文标题: 简介Android应用中sharedPreferences类存储数据的用法

本文链接: https://www.lsjlt.com/news/25728.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android应用中怎么利用SharedPreferences实现一个数据存储功能
    这期内容当中小编将会给大家带来有关Android应用中怎么利用SharedPreferences实现一个数据存储功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。除了SQLite数据库外,SharedPr...
    99+
    2023-05-31
    android sharedpreferences roi
  • SharedPreferences如何在android中实现数据存储
    本篇文章为大家展示了SharedPreferences如何在android中实现数据存储,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android平台给我们提供了一个SharedPreferenc...
    99+
    2023-05-31
    sharedpreferences android roi
  • 使用sharedpreferences可以存储什么数据类型
    使用sharedpreferences可以存储什么数据类型?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。可保存的类型:string,int,float,long,boole...
    99+
    2023-06-15
  • Android 文件存储与SharedPreferences存储方式详解用法
    目录持久化技术简介文件存储1. 将数据存储到文件中2. 从文件中读取数据SharedPreferences 存储1. 将数据存储到 SharedPreferences 中2. 从 S...
    99+
    2024-04-02
  • 怎么在Android中利用SharedPreferences实现存储
    怎么在Android中利用SharedPreferences实现存储?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SharedPreferences 特点即便是...
    99+
    2023-05-31
    android sharedpreferences roi
  • Android数据共享 sharedPreferences 的使用方法
    Android数据共享 sharedPreferences 的使用方法Android 中通过 sharedPreferences 来持久化存储数据并进行共享在 Activity 或存在 Context 环境中即可使用context.getS...
    99+
    2023-05-30
    android sharedpreferences roi
  • Android 使用 SharedPreferences 保存少量数据的实现代码
    1 SharedPreferences 介绍 SharedPreferences是使用键值对的方式来存储数据的 SharedPreferences share = getShar...
    99+
    2024-04-02
  • Android用文件存储数据的方法
    本文实例为大家分享了Android用文件存储数据的具体代码,供大家参考,具体内容如下存储数据示例: private void saveFileData() { BufferedWriter writer = null; try...
    99+
    2023-05-30
    android 文件 存储数据
  • Android中的数据储存之文件存储
    当我们在使用各种程序时,其实际上是在和各种数据打交道,当我们聊QQ,刷微博,看新闻,其实都是在和里面的数据交互例如在聊天时发出的消息,以及在登录时输入的账号密码,其实都是瞬时数据,那什么是瞬时数据呢?就是指储存在内存中,有可能因为程序关闭或...
    99+
    2023-06-04
  • 如何在Android中使用SQLite存储数据
    这篇文章给大家介绍如何在Android中使用SQLite存储数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 安装一个SQLiteDeveloper,这个用来打开android生成的数据库。软件随便搜索就能找到,后面...
    99+
    2023-05-30
    android sqlite
  • android存储数据的方法有哪些
    在Android中,存储数据的方法主要有以下几种: SharedPreferences:用于存储简单的键值对数据,适合存储一些小型...
    99+
    2024-04-09
    android
  • Android中怎么利用SharedPreference实现数据储存
    今天就跟大家聊聊有关Android中怎么利用SharedPreference实现数据储存,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。不同于文件形式的存储方式,SharedPrefe...
    99+
    2023-06-04
  • 如何在Kotlin中利用SharedPreferences对数据进行存取
    这篇文章将为大家详细讲解有关如何在Kotlin中利用SharedPreferences对数据进行存取,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体方法如下class Preference...
    99+
    2023-05-31
    kotlin sharedpreferences
  • MySQL中decimal类型用法的简单介绍
    MySQL中支持浮点数的类型有FLOAT、DOUBLE和DECIMAL类型,DECIMAL 类型不同于FLOAT和DOUBLE,DECIMAL 实际是以串存放的。DECIMAL 可能的最大取值范围与DOUB...
    99+
    2024-04-02
  • Java中的数据类型存储:Git有什么作用?
    在Java编程中,数据类型存储是非常重要的一部分。Java中的数据类型包括原始数据类型和引用数据类型,它们各自具有不同的特性和用途。而Git则是一个非常强大的版本控制工具,它可以帮助我们更好地管理代码和项目。本文将介绍Java中的数据类型...
    99+
    2023-09-18
    git 数据类型 存储
  • Python中的变量及简单数据类型应用
    目录一、变量二、字符串1.使用方法修改字符串的大小写2.在字符串中添加空白3.删除空白三、数字1.整数2.浮点数3.使用函数str()避免类型错误四、Python 之禅前言: 本文的...
    99+
    2024-04-02
  • Android存储卡读写文件与Application数据保存的实现介绍
    目录一、在存储卡上读写图片文件二、Application1、Application生命周期2、利用Application操作全局变量一、在存储卡上读写图片文件 Android的位图工...
    99+
    2024-04-02
  • MySQL中的数据类型及其应用场景介绍
    MySQL是一种常见的关系型数据库管理系统,广泛应用于各种系统和应用程序中。在MySQL中,数据以不同的数据类型存储在表中。本文将介绍MySQL中常见的数据类型及其应用场景,并附有代码示例。一、整数类型整数类型(INT):用于存储正负整数值...
    99+
    2023-10-22
    适用于表示年龄 数量等整数值) 适用于表示用户名
  • 阿里云数据库Redis简介与应用
    阿里云数据库Redis是一种高性能、内存型数据库,提供快速读写和高可用性。它支持多种数据结构,如字符串、哈希表、列表等,适用于各种应用场景。本文将详细介绍阿里云数据库Redis的特点和使用方法,并通过实际案例来展示其在不同业务场景下的应用...
    99+
    2024-01-20
    阿里 数据库 简介
  • 异步编程如何优化Java应用程序中的数据类型存储?
    异步编程是一种提高Java应用程序性能的强大工具。但是,当你的应用程序需要频繁地进行数据类型存储时,异步编程可能会遇到一些挑战。在本文中,我们将探讨如何优化Java应用程序中的数据类型存储,以最大限度地发挥异步编程的优势。 首先,让我们了解...
    99+
    2023-08-19
    存储 异步编程 数据类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作