SharedPreferences之Android数据保存

简介: 本文参考Google官方文档http://developer.android.com/training/basics/data-storage/shared-preferences.html 在Android中最简单的数据保存方式就数——SharedPreferences。

本文参考Google官方文档http://developer.android.com/training/basics/data-storage/shared-preferences.html

在Android中最简单的数据保存方式就数——SharedPreferences。

如果你想要保存一些较小的键值对集合并且是简单的数据类型的话,使用SharedPreferences无疑是最好的选择,一个SharedPreferences对象指向的文件是一个包含键值对的XML文件,并且其本身提供了一些简单的方法供我们读写。其中SharedPreferences可以设置为私有和共享的。

第一步:获取SharedPreferences对象

1、通过getSharedPreferences(String name, int mode)方法返回一个SharedPreferences对象。如果name存在,则返回指向这个文件的SharedPreferences对象。如果name不存在,则创建新的文件,返回SharedPreferences对象。MODE是指文件的权限,常用的权限类型有三个:MODE_PRIVATE(私有--只能本程序访问)、MODE_WORLD_READABLE(公开读取权限--所有程序都可以读取)、MODE_WORLD_WRITEABLE(全局写权限--所有程序都能读写)。

2、通过getPreferences(int mode)方法返回SharedPreferences对象。这个SharedPreferences对象仅仅是当前Activity拥有,默认的name为当前Activity的类名。

第二步:获取SharedPreferences.Editor接口,实现对SharedPreferences的编辑

官方推荐:SharedPreferences文件命名推荐使用包名+名称,比如:"com.example.myapp.PREFERENCE_FILE_KEY"

SharedPreferences sp = this.getSharedPreferences("mySharedPreferences", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.putString("username", username);
        editor.putString("password", password);
        editor.commit();

第三步:读取SharedPreferences文件数据

读取数据和写数据是相对应的,通过方法getXxxx()将key-value中的数据取出。

SharedPreferences sp = MainActivity.this.getSharedPreferences("mySharedPreferences", Context.MODE_PRIVATE);
        String username = sp.getString("username", "moocher");
如果在SharedPreferences文件中没有找到USERNAME,默认会返回moocher值。

MainActivity.xml是通过getPreferences(int mode)方法创建的SharedPreferences文件。

mySharedPreferences.xml是通过getSharedPreferences(String name, int mode)方法创建的。

目录
相关文章
|
3月前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
42 1
|
6天前
|
开发工具 Android开发 开发者
Android平台如何不推RTMP|不发布RTSP流|不实时录像|不回传GB28181数据时实时快照?
本文介绍了一种在Android平台上实现实时截图快照的方法,尤其适用于无需依赖系统接口的情况,如在RTMP推送、RTSP服务或GB28181设备接入等场景下进行截图。通过底层模块(libSmartPublisher.so)实现了截图功能,封装了`SnapShotImpl.java`类来管理截图流程。此外,提供了关键代码片段展示初始化SDK实例、执行截图、以及在Activity销毁时释放资源的过程。此方案还考虑到了快照数据的灵活处理需求,符合GB/T28181-2022的技术规范。对于寻求更灵活快照机制的开发者来说,这是一个值得参考的设计思路。
|
2月前
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
61 2
|
2月前
|
存储 API 文件存储
47. 【Android教程】SharedPreferences 存储
47. 【Android教程】SharedPreferences 存储
37 2
|
3月前
|
数据库 Android开发
Android 通过升级SettingsProvider数据强制覆盖用户的设置项
Android 通过升级SettingsProvider数据强制覆盖用户的设置项 【5月更文挑战第7天】
74 5
|
3月前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
61 2
|
2天前
|
JSON Java Android开发
Android 开发者必备秘籍:轻松攻克 JSON 格式数据解析难题,让你的应用更出色!
【8月更文挑战第18天】在Android开发中,解析JSON数据至关重要。JSON以其简洁和易读成为首选的数据交换格式。开发者可通过多种途径解析JSON,如使用内置的`JSONObject`和`JSONArray`类直接操作数据,或借助Google提供的Gson库将JSON自动映射为Java对象。无论哪种方法,正确解析JSON都是实现高效应用的关键,能帮助开发者处理网络请求返回的数据,并将其展示给用户,从而提升应用的功能性和用户体验。
|
9天前
|
缓存 API Android开发
Android经典实战之Kotlin Flow中的3个数据相关的操作符:debounce、buffer和conflate
本文介绍了Kotlin中`Flow`的`debounce`、`buffer`及`conflate`三个操作符。`debounce`过滤快速连续数据,仅保留指定时间内的最后一个;`buffer`引入缓存减轻背压;`conflate`仅保留最新数据。通过示例展示了如何在搜索输入和数据流处理中应用这些操作符以提高程序效率和用户体验。
23 6
|
7天前
|
编解码 网络协议 前端开发
如何实现Android平台GB28181设备接入模块按需打开摄像头并回传数据
后台采集摄像头,如果想再进一步扩展,可以把android平台gb28181的camera2 demo,都移植过来,实现功能更强大的国标设备侧,这里主要是展示,收到国标平台侧的回传请求后,才打开摄像头,才开始编码打包,最大限度的减少资源的占用
|
7天前
|
编解码 网络协议 Android开发
Android平台GB28181设备接入模块实现后台service按需回传摄像头数据到国标平台侧
我们在做Android平台GB28181设备对接模块的时候,遇到这样的技术需求,开发者希望能以后台服务的形式运行程序,国标平台侧没有视频回传请求的时候,仅保持信令链接,有发起视频回传请求或语音广播时,打开摄像头,并实时回传音视频数据或接收处理国标平台侧发过来的语音广播数据。