应用组件的启动方式:
四种应用组件中,其中三种类型分别为Activity,Service和Broadcast需要通过Intent异步定义来启动组件。而ContentProvide和前者不同,当成为ContentResolver的目标对象时候就会启动该组件。对于Activity,Service和Broadcast来说都是通过Intent启动应用,但之间还是存在的一些区别:
- Activity和Service,需要Intent显示定义一些操作,同时也可以指定待操作的数据。更可以通过Intent将数据返回来。
- Broadcast,Intent只定义广播的通知,具体的传递还是由系统所负责。
不同的应用组件的启动方式也不同:例如
- Activity:通过startActivity()或者startActivityResult()(如果需要从一个Activity携带数据返回的时候)。
- Service:通过startService()传递Intent来启动服务,也可以通过bindService()传递Intent绑定服务,但两者的启动方式也决定了Service生命周期有所不同。
- BroadCast:Intent只能定义广播的通知,通过sendBroadcast(),sendOrdereBroadcast()和sendSticklyBroadcast()等传递Intent发起广播。
清单文件AndroidManifest.xml
当我们在应用程序中创建了不同的应用组件,都需要在清单文件AndroidManifest.xml进行组件声明。一旦应用组件没有在在清单文件中声明的情况下,Android默认不会启动这些组件。同时,不同的应用组件的在清单文件中声明的元素标签页不同,例如:(大多情况下标签名都与组件名字相同…)
- < Activity > :表示声明Activity
- < Service >:表示声明Service
- …
清单文件不仅仅是用于声明应用组件,同时也具备了以下使用用途:
- 可以声明应用程序可能需要的一些权限,例如网络访问请求权限等等。
- 可以根据应用程序的AP声明API的最低权限等级。
- 可以声明向系统的软件或硬件某一功能使用的申请,例如照相机
- 对于一些出了Android Api 框架之外的第三方库可以声明应用程序需要的Api链接(例如Geogle的广告等)
|