安卓开发之SharedPreferences使用

  1. Sharedpreferences保存数据类似配置信息格式的数据,使用简单类型的key-value对
  2. 主要方法有:

Boolean contains(String key):判断是否包含特定的key的数据

abstract Map<String,?> getAll():获取数据全部键值对

Boolean getboolean(String key, Boolean defValue):获取数据里指定key对应的value,如果不存在返回默认的值(其中boolean替换成float、int、long、String等也可以使用)

由于SharedPrefences不能写入数据,需要调用edit方法获取对应的Editor对象

Sharedpreferences.Editor clear():清空Sharepreferences中所有数据

Sharedpreferences.Editor putString(String key,String value):想Sharedperferences存入数据其中String也可以替换其他数据类型

Sharedpreferences.Editor remove(String key):删除指定key对应数据项

Boolean commit():当Editor编辑完成调用该方法提交修改

  1. 使用SharedPreferences

由于SharedPreferences本身是接口,所以不能直接使用,只能通过Context提供的方法getSharedPreferences(String name,int mode)获取

其中mode有三种格式(本应用程序可读可写,其他应用程序可读不可写,其他应用程序可读可写)

注意设置的数据会保存在/data/data/包名/shared_prefs目录下的xml文件中

  1. 统计应用程序使用次数

实例代码:sharedpreferences = getSharedPreferences(“count”,MODE_PRIVATE);

//读取count数据

int count =sharedpreferences.getInt(“count”, 0);

//显示程序使用次数

Toast.makeText(this, “程序使用次数:”+count+”次。”, 1000).show();

Editor edtior = sharedpreferences.edit();

//存入数据

edtior.putInt(“count”, ++count);

//保存修改

edtior.commit();

  1. 读取其他应用中的SharePreferences

步骤:

1)  创建其他程序对应的context

2)  调用其他应用程序中的context获取对应SharedPreferences对象

3)  如果需要修改其他应用的SharedPreferences数据,那需要调用edit方法写入即可

注意:这里需要在其他应用中设置SharedPreferences的时候需设置成可MODE_WORLD_READABLE(其他应用可读方式)或者MODE_WORLD_WRITEABLE(其他应用可以可读可写方式)

我们需要在程序中保存少量数据放便在以后使用可以使用SharedPreferences来操作

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏developerHaoz 的安卓之旅

Android 关于内存泄露,你必须了解的东西

内存管理的目的就是让我们在开发过程中有效避免我们的应用程序出现内存泄露的问题。内存泄露相信大家都不陌生,我们可以这样理解:「没有用的对象无法回收的现象就是内存泄...

7710
来自专栏Android 研究

Retrofit解析6之面向接口编程

1、解析思路 2、Call接口 3、CallAdapter接口 4、Callback接口 5、Converter接口 6、ExecutorCallAd...

14720
来自专栏C/C++基础

设计模式 (10)——适配器模式(Adapter Pattern,结构型)

使用设计模式可以提高代码的可复用性、可扩充性和可维护性。适配器模式(Adapter Pattern)属结构性模式,将一个类的接口转换成客户期望的另一个接口。适配...

8120
来自专栏向治洪

picasso图片缓存框架

picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓...

33680
来自专栏刘君君

Builder模式

23250
来自专栏邵靖的专栏

使用 Valgrind 检测 CGI 内存泄漏的简易方法

Valgrind 的使用十分简单,通过设置一定的参数启动二进制可执行程序,并且在执行结束之后收集结果输出即可。但是我们的 CGI 是通过 Apache 运行的,...

39300
来自专栏向治洪

Android数据库Realm实践

Android开发中常用的数据库有5个: 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连...

26190
来自专栏求索之路

Android源码设计模式解析与实战笔记

1.单一职责原则:比如说一个ImageLoader,需要加载图片的缓存图片,此时如果将这两个功能都放在一个类中,就违反了这个原则, 我们需要将不同的功能用类精...

47350
来自专栏Android开发指南

13.缓存、三级缓存、内存溢出、AsyncTask

460120
来自专栏chenssy

【死磕 Spring】----- IOC 之 Spring 统一资源加载策略

在学 Java SE 的时候我们学习了一个标准类 java.net.URL,该类在 Java SE 中的定位为统一资源定位器(Uniform Resource ...

17630

扫码关注云+社区

领取腾讯云代金券