Android数据存储:SQLite与SharedPreferences详解
需积分: 14 85 浏览量
更新于2024-09-25
收藏 4.05MB PDF 举报
"这篇文档介绍了Android中的数据存储方式,特别是SQLite数据库和SharedPreferences的使用。"
在Android开发中,数据存储是应用程序不可或缺的一部分。Android提供了多种数据存储方式,以适应不同类型的存储需求。本文档主要关注SQLite数据库和SharedPreferences两种常见的存储手段。
8.1 存储概述
Android的数据存储体系与传统桌面操作系统有所不同。每个应用都有自己的私有数据空间,但同时也可通过特定方式与其他应用共享数据。Android支持的存储方法包括SharedPreferences、文件系统、SQLite数据库、Content Provider以及网络存储。
8.2 SharedPreferences存储
SharedPreferences是Android为存储轻量级配置信息设计的机制。它以键值对的形式保存数据,适合保存用户偏好设置或简单数据。以下是一个使用SharedPreferences的例子:
1. 首先创建一个新的Android项目,导入示例工程`ex_SharedPreferences`。
2. 运行项目,展示一个包含TextView和EditText的简单界面,用户可以在EditText中输入数据,这些数据可以通过SharedPreferences保存。
例如,当用户在EditText中输入数据后,可以调用SharedPreferences的API进行存储:
```java
SharedPreferences preferences = getSharedPreferences("MyPreferences", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("key", "value");
editor.apply(); // 或者使用 editor.commit() 来提交更改
```
之后,当应用需要读取这些数据时,可以这样操作:
```java
SharedPreferences preferences = getSharedPreferences("MyPreferences", MODE_PRIVATE);
String value = preferences.getString("key", "default_value");
```
SQLite数据库存储
SQLite是一种轻量级的、关系型数据库,适用于存储结构化的数据。Android内置了SQLite支持,使得开发者可以方便地创建、查询和管理数据库。
创建数据库通常涉及以下步骤:
1. 创建一个继承自SQLiteOpenHelper的类,重写`onCreate()`和`onUpgrade()`方法。
2. 在`onCreate()`中编写SQL语句创建表。
3. 使用`getWritableDatabase()`或`getReadableDatabase()`获取数据库实例。
4. 执行SQL查询、插入、更新或删除操作。
例如,创建一个名为`User`的表:
```sql
CREATE TABLE User (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);
```
然后在代码中执行SQL:
```java
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("INSERT INTO User (name, age) VALUES ('John', 25)");
Cursor cursor = db.query("User", null, null, null, null, null, null);
// 处理查询结果
cursor.close();
db.close();
```
Content Provider
Content Provider是Android系统中用于数据共享的机制,它允许应用将自己的数据暴露给其他应用访问。开发Content Provider需要实现一系列接口,并通过URI来访问数据。
总结来说,Android提供了多种数据存储方案,根据实际需求选择最合适的方法。SQLite适用于结构化数据,SharedPreferences适用于轻量级配置,而Content Provider则用于跨应用数据共享。理解并掌握这些技术对于Android开发者来说至关重要。
2016-06-11 上传
2021-06-06 上传
259 浏览量
点击了解资源详情
2016-06-11 上传
2021-01-04 上传
2015-07-10 上传
2016-06-11 上传
2013-01-07 上传
fugui6611634
- 粉丝: 7
- 资源: 32
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析