Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。
一.Activity :
应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
Activity之间通过Intent进行通信。
二.BroadcastReceive广播接收器:
你的应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
广播类型:
1.普通广播,通过Context.sendBroadcast(Intent myIntent)发送的
2.有序广播,通过Context.sendOrderedBroadcast(intent, receiverPermission)发送的,该方法第2个参数决定该广播的级别,级别数值是在 -1000 到 1000 之间 , 值越大 , 发送的优先级越高;广播接收者接收广播时的级别级别(可通过intentfilter中的priority进行设置),同级别接收的先后是随机的, 再到级别低的收到广播,高级别的或同级别先接收到广播的可以通过abortBroadcast()方法截断广播使其他的接收者无法收到该广播。
3.无序广播,通过Context.sendStickyBroadcast(Intent myIntent)发送的;发送异步广播要:
<uses-permission android:name="android.permission.BROADCAST_STICKY" />权限,接收并处理完Intent后,广播依然存在。
动态注册广播接收器还有一个特点,就是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。
三.Service 服务:
一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程。
服务有两种类型:
1.通过startService()方法启动服务:
通过这种方式启动的服务周期为:onCreate()-->onStartCommand()-->onDestroy();
开启者创建之后服务开始运行,但是当开启者挂掉之后,服务并不会跟着开启者挂掉而挂掉。服务会在后台一直运行。并且开启者不能调用服务中的方法。
2.通过onBind()方法启动服务:
通过这种方式启动的服务周期为:onCreate()-->onBind()-->onUnBind()-->onDestroy();
开启服务,绑定服务。绑定者挂掉之后服务也会跟着绑定者一起挂掉。绑定者可以调用服务中的方法。
四.Content Provider内容提供者 :
内容提供者主要是实现不同应用程序之间的数据共享。它不仅可以对其他应用程序实现数据共享,它还可以选择只对哪一部分数据进行共享。提高了安全性,一些私密重要的数据不会被泄露。
其他应用可以通过ContentResolver类,从该内容提供者中获取或存入数据。