Activity是一种展现型组件,具备两种启动方式:ide
显示启动,经过Intent实现 隐式启动,也须要Intent,但还须要在AndroidManifest.xml中添加IntentFilter。 在实现Activity时,须要继承Activity抽象类,并重写onCreate()方法,于是Activity具备启动和中止概念。学习
Service是一种计算型组件,其生命周期是嵌套在主线程的。 Service有两种启动模式线程
BroadcastReceiver是一种消息型组件。因为BroadcastReceiver能够在不一样的组件甚至不一样的应用之间传递消息,因此其能够脱离Activity实现,除了要在AndroidManifest.xml中注册广播类名外,还须要添加IntentFilter,这样就可让Receiver选择性的接受广播。当注册完成后,及时没有Activity启动,也能够接受广播。 在实现BroadcastReceiver时,须要继承BroadcastReceiver抽象类,可是不须要重写onCreate()方法,只要重写onReceive()方法便可。所以BroadcastReceiver没有启动和中止的概念,更像是一个系统级的监听器。xml
ContentProvider是一种数据共享性组件,能够在应用之间共享数据,因此与BroadcastReceiver同样,其能够脱离Activity实现。在实现ContentProvider时,须要继承ContentProvider抽象类,而后在AndroidManifest.xml中注册类名和ContentProvider的域名。 该类须要重写六个方法,即onCreate(),query(),insert(),update(),delete(),getType() 与前三个组件不一样,ContentProvider没有使用intent,而是使用URI来判断可否为ContentResolver提供数据共享。继承
###总结: Activity和Service有生命周期,而BroadcastReceiver与ContentProvider采用监听机制,没有生命周期 四大组件都须要在AndroidManifest.xml中注册 除了ContentProvider外,其余组件都要用到intent 四大组件实现时都要继承其抽象的父类 Service与Activity关系最为密切,BroadcastReceiver和ContentProvider的实现基本不依赖与Activity。 今年金九银十我花一个月的时间收录整理了一套知识体系,若是有想法深刻的系统化的去学习的,能够点击传送门,我会把我收录整理的资料都送给你们,帮助你们更快的进阶。生命周期