安卓四大组件

在写下一篇的《安卓调教指南》之前,我们先来讲讲安卓的 四大组件

Activity(活动)

 从字面意思上可以看出,这个组件就是一个 “活着” 的东西,它是会根据外界或者内部的原因而做出相应的变化或动作(当然这只是通俗的说法,并不是很准确的)。

如下图一样,这整个界面都是一个 Activity(活动)

Screenshot_20170519-155934.jpg

 活动又是我们最常见的组件之一,如 QQ (国产毒瘤)更是多达 700 多个 Activity(活动)

 Activity(活动)的缺点就是它无法在后台运行,因为它要有界面嘛

 总不能每个应用都像早期的某流氓一样在用户返回主页或是切换其他应用的时候在屏幕上留下一个像素点吧

 如果一个应用真的在用户切换应用时留下了像素点,那就不能算是真正意义上的后台运行了

Services(服务)

 服务是一个没有提供界面给用户的组件,但它是可以在后台运行的

 再拿我们 “可爱”的 QQ 举个例子啊,为什么我们能在使用其他应用的时候还能收到消息呢?这都要归功于 Services(服务) 它其实是在后台运行着的,然后一收到消息就会弹出通知来提醒我们

就像下图这样
Screenshot_20170519-170507.jpg

BroadcastReceive(广播接收器)

 这个就非常好理解了,BroadcastReceive广播接收器也是没有界面的,但是它可以对它们 “感兴趣” 的事情做出反应,不像Services(服务)那样傻傻的

 比如我们有个对 屏幕唤醒 感兴趣的BroadcastReceive广播接收器,那每当用户 唤醒屏幕 时,这个接收器就会启动一个 Activity(活动)或 Services(服务)来做出相应的事情

Content Provider(内容提供者)

 这个组件的作用就非常简单了,那就是可以将一个应用的 数据 提供给另一个应用

 就类似于快递员,可以将 应用A 的数据提供给 应用B