组件们——初识
活动 Activity
用户交互的入口点,拥有单个屏幕。
服务 Service
通用的入口点,只在后台保持运行而没有界面。不会阻断用户与活动Activity的交互。其他组件来启动服务,使之绑定于其。
- 可感知的服务例如音乐播放,受到系统全力维持
- 不可感知服务如同步文件,可以更自由地管理如终止后重启
广播接收器 Broadcast Receiver
应用相应系统范围时间的明确定义入口点。在应用不运行的时候也可以响应广播。
内容提供程序 Content Provider
管理共享数据,在相应权限下提供读写操作。通过分配URI进行识别数据。
召唤组件
意图Intent可以启动四大组件中活动Activity、服务Service和广播接收器Broadcasr Receiver。
意图Intent是组件之间请求操作的信使。意图Intent里包括执行什么动作,有的时候还包括执行动作需要的数据。
意图Intent用来启动特定组件时称为显式意图Intent,用于启动特定类型的组件时称为隐式意图Intent。
-
活动Activity和服务Service既可以用意图Intent请求操作,也可以返回意图Intent传递结果。
- 活动Activity向
startActivty()
或startActivityForResult()
传递意图Intent启动 - 服务Service应该采用
JobScheduler
类进行调度操作。早期版本向startService()
和bindService()
传递意图Intent进行启动和绑定
- 活动Activity向
-
广播接收器Broadcast Receiver中意图Intent只定义需要广播的内容。向
sendBroadcast()
、sendOrderedBroadcast()
和sendStickyyBroadcast()
传递意图Intent进行启动。
对于内容提供程序Content Provider,应该调用ContentResolver
。
清单文件(AndroidManifest.xml)
-
声明组件
- 活动Activity使用
<activity>
标签 - 服务Service使用
<service>
标签 - 广播接收器Broadcast Receiver使用
<receiver>
标签 - 内容提供程序Content Provider使用
<provider>
标签
- 活动Activity使用
-
确定权限
-
声明最低API和硬件要求
-
声明需要连接的API库