Activity intent intent filter 广播接收器的区别
2016-03-23 22:53
190 查看
Activity:是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件。
Intent:中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作所涉及的数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将
Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
intent的两种用法:
(1). 显式的Intent,即在构造Intent对象时就指定接收者,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的,如下:
Intent it = new Intent(Activity.Main.this, Activity2.class);
startActivity(it);
上面那个intent中, 直接指明了接收者:Activity2
(2).隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间,如下:
Intent it = new Intent();
it.setAction("com.google.test");
startActivity(it);
intent-Filter
IntentFilter就是用于描述intent的各种属性, 比如action, category等
ContentProvider:为程序提供了在应用程序之前共享数据的一种机制,而我们知道每一个应用程序都是运行在不同的应用程序的,数据和文件在不同应用程序之间达到数据的共享不是没有可能,而是显得比较复杂,而正好Android中的ContentProvider则达到了这一需求,比如有时候需要操作手机里的联系人,手机里的多媒体等一些信息,都可以用到这个ContentProvider来达到我们所需。
Service:通常称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件:1.并不依赖于用户可视的UI界面,2.具有较长时间的运行特性。
BroadcastReceiver:
广播接收器是一个专注于接收广播信息,并做出对应处理的组件。
广播事件的流程
①注册广播事件:注册方式有两种,一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的广播接收器必须要继承BroadcastReceiver;
另一种是动态注册,是在程序中使用Context.registerReceiver注册,注册的广播接收器相当于一个匿名类。两种方式都需要IntentFIlter。
②发送广播事件:通过Context.sendBroadcast来发送,由Intent来传递注册时用到的Action。
③接收广播事件:当发送的广播被接收器监听到后,会调用它的onReceive()方法,并将包含消息的Intent对象传给它。onReceive中代码的执行时间不要超过5s,否则Android会弹出超时dialog。
Intent:中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作所涉及的数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将
Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
intent的两种用法:
(1). 显式的Intent,即在构造Intent对象时就指定接收者,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的,如下:
Intent it = new Intent(Activity.Main.this, Activity2.class);
startActivity(it);
上面那个intent中, 直接指明了接收者:Activity2
(2).隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间,如下:
Intent it = new Intent();
it.setAction("com.google.test");
startActivity(it);
intent-Filter
IntentFilter就是用于描述intent的各种属性, 比如action, category等
ContentProvider:为程序提供了在应用程序之前共享数据的一种机制,而我们知道每一个应用程序都是运行在不同的应用程序的,数据和文件在不同应用程序之间达到数据的共享不是没有可能,而是显得比较复杂,而正好Android中的ContentProvider则达到了这一需求,比如有时候需要操作手机里的联系人,手机里的多媒体等一些信息,都可以用到这个ContentProvider来达到我们所需。
Service:通常称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件:1.并不依赖于用户可视的UI界面,2.具有较长时间的运行特性。
BroadcastReceiver:
广播接收器是一个专注于接收广播信息,并做出对应处理的组件。
广播事件的流程
①注册广播事件:注册方式有两种,一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的广播接收器必须要继承BroadcastReceiver;
另一种是动态注册,是在程序中使用Context.registerReceiver注册,注册的广播接收器相当于一个匿名类。两种方式都需要IntentFIlter。
②发送广播事件:通过Context.sendBroadcast来发送,由Intent来传递注册时用到的Action。
③接收广播事件:当发送的广播被接收器监听到后,会调用它的onReceive()方法,并将包含消息的Intent对象传给它。onReceive中代码的执行时间不要超过5s,否则Android会弹出超时dialog。
相关文章推荐
- Service如何工作?
- Android常见控件使用详解
- java_patest甲级真题1002. A+B for Polynomials
- LocalBroadcastManager
- React-Native系列Android——自定义View组件开发
- C# 类和结构的区别
- JS操作SVG模拟水滴分离、融合效果
- 你如何对网站的文件和资源进行优化?
- iOS UITextField的基本用法
- 倒计时时钟
- LINUX内核设计第五周——扒开系统调用的三层皮(下)
- 学习笔记——文本框显示默认,点击后默认输入消失。鼠标离开后又出现
- KLEE 符号执行工具的有趣实例
- 获取Windows操作系统版本
- iOS tableView的用法
- iOS学习笔记(2)
- 使用详解及源码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
- 封装简单的equery
- Git在项目协同开发中的简单使用
- 语言基础数据类型 1