`
158067568
  • 浏览: 329286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SharedPreferenced

阅读更多

 

SharedPreferenced

作者:LEGEND

qq158067568

SharedPreferenced作用

Windows中,配置文件通常存储在ini文件中。

j2se程序中,配置文件通常存储在properties文件中。

Android中,,配置文件通常通过SharedPreferenced存数参数。

SharedPreferenced类(以下简称sp)是一个轻量级的用于存储数据的类,通常用来存储一些软件的参数。sp通过Android提供的pull技术,将各参数存储在xml文件中。但是该文件对于用户来说是透明度。该xml的位置在:/data/data/<package name>/shared-prefs目录下

SharedPreferenced使用

得到sp对象:

 SharedPreferences  sp = Context.this.getSharedPreferences("文件名",文件模式);

       文件名:xml文件的名称。

       文件模式:其实这就是建立文件的四种模式privateappendreadablewriteable这四种。

得到Editor对象,用于编辑sp对象:

Editor editor =sp.edit();

sp对象本身只提供了读取各种属性的功能,而并没有提供写入对象的属性。如果想向xml文件中写入数据,还要通过以上方法创建Editor对象,其提供了如

putFloat(String key, float value)

putInt(String key, int value)

putBoolean(String key, boolean value)

       putString(String key, String value)

等方法,其实用与Bundler类很像,都类似于map,为一个键值对。

Editor中有一个非常重要的方法:

       abstract boolean commit()

该方法是所有putxx()方法用完之后必须添加的方法,该方法类似于事务处理,如果之前有错误,则不执行以上所有的语句,如果没有,则一起执行。

Activitysp对象的简单得到方法:

上面提到的sp对象的创建方法自己提供了xml文件名,AndroidActivity类中还提供一种使用Activity类名作为xml文件名的得到sp对象的方法:

SharedPreferences getPreferences(int mode)

该方法只需用户提供文件类型即可。

其他应用程序中访问本应用程序的xml资源;

开发中很少会访问其他应用程序的xml文件。其实只要待访问的xml文件首先不是private的,并且得到了xml文件所在应用程序的上下文引用,则可以访问该文件。

得到已知包名的上下文引用的方法是:

createPackageContext(String packageName, int flags);

       packageName为待访问应用程序的包名

       flags只有两种参数可选 CONTEXT_INCLUDE_CODE or CONTEXT_IGNORE_SECURITY.

访问代码如下:

Context con = this.createPackageContext("cn.edu.huet.zcl", CONTEXT_IGNORE_SECURITY);

有了该引用之后,就与在自己应用程序内操作一样了,值得注意的是:xml文件所在应用程序在创建该应用程序是,需要是非private的,其他应用程序才能访问。

代码:

SharedPerferencedTest

 

 

分享到:
评论

相关推荐

    java_提供App数据清理工作的类_清除内外部缓存数据_SharedPreferenced数据

    一些工具类代码块的标准代码: 清除本应用内部缓存数据 清除本应用外部缓存数据 清除本应用所有数据库 清除本应用SharedPreference 根据名字清除本应用数据库 清除本应用files文件 清除本应用所有的数据 ...

    SharedPreferencesUtils.java

    SharedPreferenced工具类,快速实现持久化,帮助开发者提升开发速度,提高封装能力,丰富封装的思想

    个人信息系统

    《个人信息系统的实现与 SharedPreferences 的应用》 在Android开发中,个人信息系统的构建是常见的应用场景,它通常涉及到用户信息的存储、界面交互以及数据传递等基本功能。本项目以一个初级版本的个人信息系统为...

    神奇宝贝(PokemonGo)基于Jetpack+MVVM+Repository设计模式+Data.zip

    神奇宝贝(PokemonGo)基于Jetpack+MVVM+Repository设计模式+Data

    用于试用 Dev Containers 的 Python 示例项目.zip

    用于试用 Dev Containers 的 Python 示例项目试用开发容器Python开发容器是一个具有明确定义的工具/运行时堆栈及其先决条件的运行容器。您可以使用GitHub Codespaces或Visual Studio Code Dev Containers试用开发容器。这是一个示例项目,您可以通过几个简单的步骤尝试任一选项。我们还有各种其他vscode-remote-try-*示例项目。注意如果您已经有代码空间或开发容器,则可以跳至“要尝试的事情”部分。设置开发容器GitHub Codespaces请按照以下步骤在 Codespace 中打开此示例单击代码下拉菜单。单击Codespaces选项卡。单击主屏幕上的“创建代码空间”。有关创建代码空间的更多信息,请访问GitHub 文档。VS Code 开发容器如果您已安装 VS Code 和 Docker,则可以单击上方或此处的徽章开始使用。单击这些链接将导致 VS Code 根据需要自动安装 Dev Containers 扩展,将源代码克隆到容器卷中,并启动开发容器以供使用。按

    springboot vue3前后端分离.zip

    springboot vue3前后端分离

    数学建模-神经网络算法 lecture 11 线性随机系统辨识示例 共9页.pptx

    数学建模-神经网络算法 lecture 11 线性随机系统辨识示例 共9页.pptx

    优质粳稻生产技术规程.docx

    优质粳稻生产技术规程.docx

    所有算法均在 Python 3 中实现,是 hacktoberfest2020 的一个项目 - 没有针对 hacktoberfest 2021 的问题或 PR.zip

    算法 - Python 目录灵感与动力贡献指南从这里开始所有算法均用 Python 3 实现(用于教育)这些实现仅用于学习目的。如果您想贡献更有效的解决方案,请随时打开问题并提交您的解决方案。灵感你可以在LeetCode 算法中寻找要实现的算法若要贡献,请确保算法尚未提交!请确保在您的 PR 中添加问题编号。贡献指南文件夹和文件请确保你的文件位于 -Folder 中LeetCode,并且命名如下 0001_TwoSum.py-> LeetCode 问题的 4 位数字、下划线、LeetCodeName开放问题当您打开问题时,请确保问题尚未实现(查看代码/Leetcode 以获取问题编号)。现有问题打开的问题将被关闭,并且对此问题的 PR 被标记为垃圾邮件 。打开问题的贡献者将被优先分配到该问题。如果大约 7 天内没有 PR,则问题将分配给另一个贡献者。拉取请求只有与问题相结合并符合命名约定(参见文件夹和文件)的 Pull 请求才会被合并!如果 PR 中没有加入问题,您的 PR 将被标记为垃圾邮件并关闭。如果您的代码未通

    用于接收和交互来自 Slack 的 RTM API 的事件的框架.zip

    用于接收和交互来自 Slack 的 RTM API 的事件的框架python-rtmbot此项目不再处于积极开发阶段。如果您刚刚开始,我们建议您先查看Python SDK。如果您一直在使用此项目,我们只会解决关键问题(例如安全问题),但我们建议您计划迁移到 Python SDK。您仍然可以提交问题并向我们寻求帮助! 如果您有兴趣在未来维护此软件包,请联系我们 一个用 Python 编写的 Slack 机器人,通过 RTM API 连接。Python-rtmbot 是一个机器人引擎。任何了解Slack API和 Python的人都应该熟悉插件架构。配置文件格式为 YAML。该项目目前处于 1.0 之前的版本。因此,您应该计划不时进行重大更改。对于任何重大更改,我们将在 1.0 之前的版本中调整次要版本。(例如 0.2.4 -> 0.3.0 意味着重大更改)。如果稳定性很重要,您可能希望锁定特定的次要版本)与 webhook 的一些区别不需要网络服务器来接收消息可以回复用户的直接消息以 Slack 用户(或机器人)身份登录机器人用户必须被邀请加入频道

    基于django的音乐推荐系统.zip

    基于django的音乐推荐系统.zip

    北京理工大学<Python机器学习应用>超详细学习笔记和代码注释(未完待续).zip

    北京理工大学<Python机器学习应用>超详细学习笔记和代码注释(未完待续)

    kernel-5.15-rc7.zip

    kernel-5.15-rc7.zip

    神经网络-DenseNet网络结构

    神经网络-DenseNet网络结构

    rbac组件(基于角色的权限控制).zip

    rbac组件(基于角色的权限控制)

    C++ Vigenère 密码(解密代码)

    C++ Vigenère 密码(解密代码)

    数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 杭州消防设置-对杭州市消防局设置的研究 共8页.pdf

    数学建模培训资料 数学建模实战题目真题答案解析解题过程&论文报告 杭州消防设置-对杭州市消防局设置的研究 共8页.pdf

    老年用品产品推广目录分类表.docx

    老年用品产品推广目录分类表.docx

    毕设源码-基于Python的期货程序化交易系统的设计与实现_jhypi-期末大作业+说明文档.rar

    本项目是基于Python的期货程序化交易系统的设计与实现,旨在为计算机相关专业学生提供一个实践性强、贴近实际应用场景的项目案例。通过这一项目,学生们能够深入了解程序化交易的基本原理和实现方法,同时锻炼自身的编程技能、数据分析能力以及金融市场的洞察力。 项目的主要功能包括:自动收集和处理市场数据、基于预设策略进行交易决策、实时执行交易指令、监控交易风险以及生成详细的交易报告。系统采用模块化设计,主要包括数据采集模块、策略执行模块、交易执行模块和风险管理模块,各个模块之间通过明确的接口进行交互。项目采用的编程语言为Python,利用其强大的数据处理库和机器学习库,保证了系统的灵活性和扩展性。开发这一项目的目的是让学生们在实践中学习和掌握程序化交易的核心技术,提升其在金融科技领域的就业竞争力。

Global site tag (gtag.js) - Google Analytics