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超神学堂 前言 前面几章介绍了一些基础,但都是静 ...
随机推荐
- css:清楚html所有标签自带属性
相信如果您动手写过网页的话,应该体会到有些标签会自带一些默认的样式,而这些样式或许又是我们不想要的,所以我们可以用以下代码清除所有标签的默认样式 html, body, div, span, ap ...
- mongodb mongod 启动参数
我们可以通过mongod --help查看mongod的所有参数说明,以下是各参数的中文解释. 基本配置 –quiet# 安静输出 –port arg# 指定服务端口号,默认端口27017 –bind ...
- spring cloud 总结
Finchley版本Spring Cloud Finchley; Spring Boot 2.0.3 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)(Fin ...
- MySql/Oracle树形结构查询
Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by select * from treeTable start with id='1 ...
- Linux 进程通信方式
转载文章 进程通信的方式 管道( pipe ): 管道包括三种: 普通管道PIPE: 通常有两种限制,一是单工,只能单向传输;二是只能在父子或者兄弟进程间使用. 流管道s_pipe: 去除了第一种限制 ...
- Javascript的算法题目
用js实现单链表的增删,直接上代码 const linkList=new LinkList() function LinkList(){ var Node=function(element){ thi ...
- 168. Excel Sheet Column Title (Math)
Given a positive integer, return its corresponding column title as appear in an Excel sheet. For exa ...
- js监控鼠标滚动事件
//滚动动画 windowAddMouseWheel(); function windowAddMouseWheel() { var scrollFunc = function (e) { e = e ...
- Socket 多线程编程
前面一片学习了TCP/IP的基础网络编程,并给出了简单的服务端与客户端通信交互的例子.还介绍了UPC的通信例子. 这次学习TCP/IP的多线程编程.因为涉及到TCP/IP一般都是多线程,服务端会一直监 ...
- 最短路径(SP)问题相关算法与模板
相关概念: 有向图.无向图:有向图的边是双行道,无向图的边是单行道.在处理无向图时,可以把一条无向边看做方向相反的两条有向边. 圈 cycle / 回路 circuit:在相同顶点上开始并结束且长度大 ...