Android 应用程序组件

来源:互联网 发布:聚宝盆软件官网 编辑:程序博客网 时间:2024/05/30 23:29

Android四大基本组件分别是Activity活动,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。

活动(Activity),相当于C/S程序中的窗体或Web程序的页面。每一个Activity提供了一个可视化的区域。在这个区域可以放置各种Android组件,例如按钮、图像、文本框等。应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。Android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。

服务(Service),服务没有可视化接口,用于在后台完成用户指定的操作。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。Service分为两种:
(a)started(启动):当应用程序组件(如Activity)调用startService()方法启动服务时,服务处于started状态。
(b)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。

服务不能自己运行,需要通过Contex.startService()或Contex.bindService()启动服务。

通过startService()方法启动的服务与调用者没有关系,即使调用者关闭了,服务仍然运行,想停止服务要调用Context.stopService(),此时系统会调用onDestory(),使用此方法启动时,服务首次启动系统先调用服务的onCreate()–>onStart(),如果服务已经启动再次调用只会触发onStart()方法。

使用bindService()启动的服务与调用者绑定,只要调用者关闭服务就终止,使用此方法启动时,服务首次启动系统先调用服务的onCreate()–>onBind(),如果服务已经启动再次调用不会再触发这2个方法,调用者退出时系统会调用服务的onUnbind()–>onDestory(),想主动解除绑定可使用Contex.unbindService(),系统依次调用onUnbind()–>onDestory();

开发人员需要在应用程序配置文件中声明全部的Service,使用标签。Service组件需要继承Service基类。

内容提供器(Content Provider),Android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式,其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中,它的好处:统一数据访问方式。

广播接收器(Broadcast Receiver),接收广播信息并做出响应。你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

0 0
原创粉丝点击