Android核心技术Intent和数据存储篇

- 女孩:上海站到了?
男孩:嗯呢?走向世界~
- 女孩:Intent核心技术和数据存储技术?
男孩:对,今日就讲这个~
Intent是各个组件之间用来进行通信的,Intent的翻译为“意图”的意思,是传输数据的核心对象,它可以开启一个activity,也可以发送广播消息和开启Service服务,对于他们之间就是通过intent来互相调用和协调工作的。
开启activity:
通过Intent对象传递startActivity()和startActivityForResult()与onActivityResult()方法开启activity。
开启Service:
startService()方法,开启一个Service。还有通过bindService()方法可以建立调用组件和服务之间的链接。
传递Broadcast:
广播的传递sendBroadcast(),sendOrderedBroadcast()或sendStickyBroadcast()方法。
Intent对象的属性


数据存储技术
在Android中与三种存储的方式:
SharedPreferences存储
File 文件存储
SQLite数据库存储
ContentProvider实现数据共享
1.SharedPreferences存储
SharedPregerences是一种轻量级的数据存储方式,一般用来存储一些简单数据,如应用程序的配置信息等。它的本质基于key-value键值对的方式存储,存储类型为int,long,String,float和boolean。
数据SharedPreferences的文件保存目录:/data/data//shared_prefs/。实现SharedPreferences存储的步骤:调用getSharedPreferences()方法,在获取该方法有两个参数:
getSharedPreferences(String name, int mode)
getPreferences(int mode)

个人资料界面模块以及SQLite数据库的使用
学习目标:
掌握SQLite数据库的使用,能够实现用数据库来保存用户的信息;
学会运用好个人资料,以及个人资料的修改功能实现;
个人资料包括用户名,昵称,性别,签名,QQ号或个人社交账号的记录等。
数据库的创建
数据类继承extends SQLiteOpenHelper


Android设置修改密码,设置密保,和找回密码:
学习目标
掌握修改密码功能的开发,和实现用户密码的修改;
掌握设置密保的功能开发,通过密保我们可以找回用户的密码,来保证用户的安全。
具体布局将不在展示,只说明一些功能模块的实现。
对于一个项目来说,项目中将多次用到sharedPreferences共享参数,去存储用户的登录状态或清除登录状态,“我”的界面也要求用到读取用户姓名的方法,所以我们干脆把这三个方法都扔到AnalysisUtils里面吧。
在Utils包中新建一个Java类,名为AnalysisUtils。


File文件存储
Java中提供了一套IO流体系,Android的写入和读取文件方式一样,提供FileOutputStream类的openFileOutput和提供FileInputStream类的openFileInput()方法。这位内部存储,那么外部存储是?外部存储它使用了Environment类的getExternalStorageDirectory()方法进行读写数据。

本地数据存储
这里介绍常用之Shared Preferences,主要以key-value形式存储。(支持boolean,int,float,long,string);Internal Storage数据安全性高,空间大小有限;External Storage与之Internal Storage相反。
SharedPreferences是一种比较轻型的数据存储,基于xml的键值对存储,存储一些简单的信息。
SharedPreferences只能获取数据不能存储和修改,但能通过Editor实现存储修改。
步骤:
获取SharedPreferences对象
SharedPreferences.Editor
Editor的putXXX的方法
Editor.commit()

SQLite数据库
SQLite是一种轻量级系型数据库,实质为二进制文件,所谓关系型,就是一种关系模式,这里表示二维表结构模式。
在关系型数据库中,二维表中的列为属性,称为字段;行为记录,如一对象;属性中(字段)取值范围称为域。
这里我们要学会数据库,如DDL,DML等,数据定义语言和数据操作语言,创建表格和增删改查。
在SQLite中我们要了解认识SQLiteOpenHelper和SQLiteDatabase,并学会用。和两种方法rawQuery():用于查询和execSQL():用于增删改查。
在Android提供了SQLiteDatabase创建对象,运用不用写数据库语法封装好的API类。分别用query(),insert(),delete(),update()表示。
到此就ok了,接下来会不断往高处学,让我们一起慢慢探索吧~
小礼物走一走 or 点赞
Android核心技术Intent和数据存储篇的更多相关文章
- Spring Boot 揭秘与实战(二) 数据存储篇 - 声明式事务管理
文章目录 1. 声明式事务 2. Spring Boot默认集成事务 3. 实战演练4. 源代码 3.1. 实体对象 3.2. DAO 相关 3.3. Service 相关 3.4. 测试,测试 本文 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - ElasticSearch
文章目录 1. 版本须知 2. 环境依赖 3. 数据源 3.1. 方案一 使用 Spring Boot 默认配置 3.2. 方案二 手动创建 4. 业务操作5. 总结 4.1. 实体对象 4.2. D ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MongoDB
文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用mongoTemplate操作4. 总结 3.1. 实体对象 3 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - Redis
文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用 redisTemplate 操作4. 总结 3.1. 工具类 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - JPA整合
文章目录 1. 环境依赖 2. 数据源 3. 脚本初始化 4. JPA 整合方案一 通过继承 JpaRepository 接口 4.1. 实体对象 4.2. DAO相关 4.3. Service相关 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MyBatis整合
文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. MyBatis整合5. 总结 4.1. 方案一 通过 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置
文章目录 1. 环境依赖 2. 数据源 3. 单元测试 4. 源代码 在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据源,例如针对于 MySQL 的分库场景.因此,我们需要配置多个数据源. ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - MySQL
文章目录 1. 环境依赖 2. 数据源3. 脚本初始化 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 4. 使用JdbcTemplate操作5. 总结 4.1. ...
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用 原创 2017-04-13 嘟嘟MD 嘟爷java超神学堂 前言 前面几章介绍了一些基础,但都是静 ...
随机推荐
- JAVA程序调试
调试 步骤1:设置断点(不能在空白处设置断点) 步骤2:启动调试 步骤3:调试代码(F6单步跳过)笔记本Fn+F6(F5) 步骤4:结束调试 掌握调试的好处? l 很清晰的看到,代码执行的顺序 l ...
- asmx 接收数据过大 发生错误
原文:https://www.cnblogs.com/xinaixia/p/5945316.html 错误:已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 Max ...
- oracle中文乱码的解决方法
select userenv('language') from dual; NLS_LANG AMERICAN_AMERICA.AL32UTF8
- C语言中 .h文件和.c文件的区别
要理解.c文件与.h文件有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CP ...
- 688. Knight Probability in Chessboard棋子留在棋盘上的概率
[抄题]: On an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exa ...
- Java日期时间处理
Java 日期时间处理 一.时间相关类 java.lang.System java.util.Date java.util.Calendar java.util.GregorianCalendar j ...
- springboot + @KafkaListener 手动提交及消费能力优化
转载 https://blog.csdn.net/asd5629626/article/details/82776450 https://blog.csdn.net/asd5629626/artic ...
- js string to date
Date.prototype.pattern=function(fmt) { //alert(this.getFullYear()); fmt=fmt.toUpperCase(); var o = { ...
- C++字符串结束标识
用一个字符数组可以存放一个字符串中的字符.如: char str[12]={'I',' ','a','m',' ','h','a','p','p','y'}; 用一维字符数组str来存放一个字符串″I ...
- 21. pt-stalk
pt-stalk 适用场景:MySQL Server 性能波动出现的频率很低.例如.几天一次MySQL Server 性能波动出现的机率很快.例如.几秒闪过 pt-stalk h=192.168.10 ...