文章目录
- 一、Activity 活动
- 1. Activity的创建
- (1). Android studio创建Activity
- (2). Activity使用流程
- 2. Activity的生命周期
- (1). 生命周期的状态
- 1. 启动状态
- 2. 运行状态
- 3. 暂停状态
- 4. 停止状态
- 5. 销毁状态
- (2). 生命周期的方法
- 1. onCreate()方法
- 2. onStart()方法
- 3. onResume()方法
- 4. onPause()方法
- 5. onStop()方法
- 6. onDestroy()方法
- 7.onRestart()方法
- 3. Activity的启动模式
- (1). Android任务栈
- (2). Activity的四种启动模式
- 1. standard 模式
- 2. singleTop 模式
- 3. singleTask 模式
- 4. singleInstance 模式
- 4. Activity之间的跳转
- 1. 显示意图
- 2. 隐式意图(隐式启动:通过Intent-filter的Action,Category或data来实现)
- 5. Activity之间的数据传递
- (1). 数据传递
- 1. 商家配送
- 2. 中间小哥配送
- (2). 数据回传(后一个传回给前一个)
- 6. 系统给我们提供的常见的Activity
- 7. Fragment(碎片)
- (1). Fragment的生命周期
- (2). 创建Fragment
- (3). 在Activtiy中添加Fragment
- 1. 直接在布局文件中添加Fragment
- 2. 当Activity运行时添加Fragment
- 二、BroadcastReceiver 提供广播接收器
- 1. 广播接受者简介
- 2. 广播接受者入门
- 3. 自定义广播
- 4. 广播的类型
- 三、Service 服务
- 1. 服务的创建
- 2. 服务的生命周期
- 3. 服务的启动方式
- 4. 服务的通信
- 四、ContentProvider 内容提供者
- 1. 内容提供者简介
- 2. 内容提供者的创建
- 3. 内容提供者的使用
- 4. 内容观察者的使用
- 五. Intent(意图)
- 1. Intent简介
- 2. Intent对象的属性
- (1). Component Name属性
- (2). Action和Data属性
- (3). Action和Category
- (4). Extras属性
- (5). Flags属性
- 3. Intent的种类
- (1). 显式Intent
- (2). 隐式Intent
- 4. Intent过滤器
一、Activity 活动
在Android中,用户与程序的交互是通过Activity完成的,activity负责管理应用程序的用户界面。
Activity是Android程序中的四大组件之一,为用户提供可视化界面及操作。一个应用程序通常包含多个Activity,每个Activity负责管理一个用户界面。这些界面可以添加多个控件,每个控件负责实现不同功能。
Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作, 比如打电话,照相,发送邮件,或者显示一个地图!Activity可以理解成一个绘制用户界面的窗口, 而这个窗口可以填满整个屏幕,也可能比屏幕小或者浮动在其他窗口的上方!
1. Activity的创建
(1). Android studio创建Activity
创建Activity之后,重写oncreat()方法
注意:
- 在Android中创建四大组件都需要在AndroidManifest.xml文件中注册
- 创建完之后,Android studio会自动在AndroidManifest.xml文件中注册
(2). Activity使用流程
- 注:可以继承Activity和AppCompatActivity,只不过后者提供了一些新的东西而已! 另外,切记,Android中的四大组件,只要你定义了,无论你用没用,都要在AndroidManifest.xml对 这个组件进行声明,不然运行时程序会直接退出,报ClassNotFindException…
2. Activity的生命周期
Activity的生命周期包含5种状态,涉及7中方法。
(1). 生命周期的状态
是一个Activity从创建到销毁的全过程,分为以下5个状态
1. 启动状态
2. 运行状态
3. 暂停状态
4. 停止状态
5. 销毁状态
(2). 生命周期的方法
1. onCreate()方法
2. onStart()方法
3. onResume()方法
运行(过渡)
4. onPause()方法
暂停
5. onStop()方法
6. onDestroy()方法
7.onRestart()方法
从停止状态到再次启动状态
3. Activity的启动模式
Activity是可以层叠摆放的,每启动一个新的Activity就会覆盖在原Activity上,如果单击返回按钮,最上面的Activity被销毁,下面的Activity重新显示。
原因是:Android系统同任务栈来管理Activity实例。
(1). Android任务栈
栈数据结构:先进先出
在Android中采用任务栈形式管理Activity。
通常一个应用程序对应一个任务栈,默认情况下每启动一个Activity都会入栈,并处于栈顶位置,用户操作的永远是栈顶的Activity。
- Activity启动时压入栈
- 用户单击返回弹出栈
(2). Activity的四种启动模式
1. standard 模式
是Activity的默认启动模式,这模式的特点:
- 每启动一个Activity就会在栈顶创建一个新的实例
2. singleTop 模式
判断要启动的Activity实例是否位于栈顶,如果位于栈顶则直接复用,否则创建新的实例。
3. singleTask 模式
每次启动该Activity时,系统首先会检查栈中是否存在当前Activity实例,如果存在则直接使用,并把当前Activity之上的所有实例全部出栈,否则会重新创建一个实例
4. singleInstance 模式
指定为singleInstance 模式的Activity会启动一个新的任务栈来管理Activity实例,无论从哪个任务栈中启动该Activity,该实例在整个系统中只有一个。
- 意义:为了在不同程序中共享同一个Activity实例
4. Activity之间的跳转
在Android系统中,每个应用通常都由多个界面组成,每个界面就是一个Activity,在这些界面进行跳转时,实际上也就是Activity之间的跳转,Activity之间挑战需要用到Intent组件,通过Intent可以开启新的Activity实现页面的跳转功能。
根据开启目标组件的方式不同,Intent分类为:
1. 显示意图
- 明确找的对象
- 通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个
2. 隐式意图(隐式启动:通过Intent-filter的Action,Category或data来实现)
- 模糊不明确对象
- 不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-filter,逐一匹配出满足属性的组件,当不止一个满足时, 会弹出一个让我们选择启动哪个的对话框
5. Activity之间的数据传递
Android进行消息传递或数据传递,使用的也是Intent。
- Intent不仅可以开启Activity、Service、BroadcastReceiver组件,还能在这些组件之间传递数据
数据传递也有两种方式:
(1). 数据传递
使用Bundle在Activity之间交换数据
Bundle是键值对的组合
1. 商家配送
放数据
接受数据,并放到文本框
2. 中间小哥配送
(2). 数据回传(后一个传回给前一个)
在Activity中,使用Intent既可以将数据传给下一个Activity、还可以将数据回传给上一个Activity
Activity中提供了一个startActivityForResult(Intent intent,int requestCode)方法,该方法也用于启动Activity,并且这个方法可以在当前Activity销毁时返回一个结果给上一个Activity
MainActivity
DetailActivity
6. 系统给我们提供的常见的Activity
7. Fragment(碎片)
让程序更加合理的利用屏幕空间
(1). Fragment的生命周期
(2). 创建Fragment
(3). 在Activtiy中添加Fragment
1. 直接在布局文件中添加Fragment
2. 当Activity运行时添加Fragment
二、BroadcastReceiver 提供广播接收器1. 广播接受者简介
2. 广播接受者入门
3. 自定义广播
4. 广播的类型
三、Service 服务1. 服务的创建
2. 服务的生命周期
3. 服务的启动方式
4. 服务的通信
四、ContentProvider 内容提供者- Android四大组件之一,主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用
1. 内容提供者简介
2. 内容提供者的创建
3. 内容提供者的使用
4. 内容观察者的使用
五. Intent(意图)1. Intent简介
四大组件间的 枢纽——Intent(意图),Android通信的桥梁
Intent叫意图,是程序中各组件之间的交互方式,可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
一般用于启动Activity、Service、发送广播
2. Intent对象的属性
(1). Component Name属性
从MainActivity跳转到DetailActivity
(2). Action和Data属性
之后还有在AndroidManifest设置Android权限
(3). Action和Category
(4). Extras属性
多个Activity之间进行交换数据
(5). Flags属性
3. Intent的种类
(1). 显式Intent
- 直接指定目标组件的名称
- 多用于在应用程序内部传递信息
(2). 隐式Intent
- 不会用组件名称定义要激活的目标组件
- 多用于在不同应用程序之间传递消息
4. Intent过滤器