Android本地存储SharedPreferences详解
作者:claireyuancy 发布时间:2023-06-24 17:01:51
Android本地存储SharedPreferences详解
存储位置
SharedPreferences数据保存在: /data /data/<package_name> /shared_prefs 文件夹下,以XML格式保存,根元素为:<map />。文件名称为获取SharedPreferences实例时传递的參数值。
<map>
<int name="key" value="value" />
<string name="key" > value </string>
</map>
获取实例
SharePerferences是一个接口,Context实现了API:getSharedPreferences(String, int);这个API依据String返回一个SharePerferences实例。同样的String返回的SharePerferences的实例是同样的。此处strign指定的是存储数据的xml文件的名称。
Activity实现了getPreferences(int),这种方法就是默认使用Activity的class name作为String调用 getSharedPreferences(String, int)。
//指定该SharedPreferences数据仅仅能被本应用读、写。
Context.MODE_PRIVATE
//指定该SharedPreferences数据也能被其它应用程序读,但不能写。
Context.MODE_WORLD_READABLE
//指定该SharedPreferences数据也能被其它应用程序读、写。
Context.MODE_WORLD_WRITEABLE
//文件是否存在,存在那么追加,否则新建
Context.MODE_WORLD_APPEND
读
//推断SharedPreferences是否包括特定key的数据。
boolean contains(String key)
//获取SharedPreferences里所有的key-value对。
Map<String,?> getAll()
//获取指定key相应的value,假设key不存在。则返回默认值defValue。
Xxx getXxx(String key, Xxx defValue)
写
SharedPreferences接口本身未提供写入数据的能力,而是通过其内部接口。其调用SharedPreferences.edit() 方法就可以获得它所相应的 SharedPreferences.Editor对象。Editor有例如以下向SharedPreferences写入数据的方法:
//清空SharedPreferences里全部数据。
Editor.clear()
//向SharedPreferences里存入指定key相应的数据。
Editor.putXxx(String key, Xxx Value)
//删除SharedPreferences里指定key相应的数据项。
Editor.remove(String key)
//当Editor编辑完毕后,调用该方法提交改动。
boolean Editor.commit()
读写其它应用的SharedPreferences
1.创建其它应用的相应 Context。
Context useContext =createPackageContext("package_name",Context.CONTEXT_IGNORE_SECURITY);
2.调用其它应用的 Context的 getSharedPreferences()方法获取 SharedPreferences对象。
3.调用其它应用的 SharedPreferences.edit()方法获得对应SharedPreferences.Editor对象。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.cnblogs.com/claireyuancy/p/6915032.html
猜你喜欢
- 面向对象三要素:封装、继承、多态。封装和继承,这两个比较好理解,但要理解多态的话,可就稍微有点难度了。今天,我们就来讲讲多态的理解。我们应该
- 下面将源代码贴出。 public static class ChineseToPinYin { private static readonl
- Swagger以及knife4j基本使用Swagger 介绍:官网:https://swagger.io/Swagger是一个规范和完整的框
- Jenkins 关闭和重启我们用jar -jar jenkins.war来启动jenkins服务器,那么我们如何关闭或者重启jenkins服
- 本文实例为大家分享了banner轮播图无限轮播效果的具体代码,供大家参考,具体内容如下效果展示第一步(权限配置)<uses-permi
- 最近做的一个小东西遇到这样的情况,我从一个页面MainActivity修改一些内容,需要跳转到一个新的EditActivity去做修改操作,
- Maven打包没有指定主类在使用IDEA开发项目的时候经常会遇到使用Maven打包项目(打成jar包或者zip包),但是之前不太清楚打包插件
- 主要技术实现:spring、 springmvc、 redis、 springboot、 mybatis 、sessi
- java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到
- JavaFX主要致力于富客户端开发,以弥补swing的缺陷,主要提供图形库与media库,支持audio,video,graphic,ani
- 什么是事件?用户对组件的一个操作,称之为一个事件。事件源:能够产生事件的GUI组件对象。事件处理方法:能够接受,解析和处理事件类对象,实现与
- 1、自定义实现该类package com.linmain.dict.handle;import org.apache.ibatis.sess
- 一、需求一般项目中都需要作异常处理,基于系统架构的设计考虑,使用统一的异常处理方法。系统中异常类型有哪些?包括预期可能发生的异常、运行时异常
- 目前html5发展非常迅速,很多native app都会嵌入到网页中,以此来适用多变的市场需求。但是android的webview默认支持的
- Spring内置 * 对于 Web 应用来说,ServletContext 对象是唯一的,一个 Web 应用,只有一个ServletCont
- 本文实例讲述了Android监听手机电话状态与发送邮件通知来电号码的方法。分享给大家供大家参考,具体如下:在android中可以用Phone
- 本文实例讲述了C# winform实现右下角弹出窗口结果的方法。分享给大家供大家参考,具体如下:using System.Runtime.I
- 今天做项目的时候,遇到一个问题,如果我调用某个服务的接口,但是这个服务挂了,同时业务要求这个接口的结果是必须的,那我该怎么办呢,答案是通过h
- 总结java里面关于获取当前时间的一些方法System.currentTimeMillis()获取标准时间可以通过System.curren
- Android 中在有序广播中添加自定义权限的实例前言;有序广播说明:有序广播因为要处理消息的处理结果,所以要复杂一些。 * sendOrd