Activity 活动,Service 服务,ContentProvider 内容提供者,BroadcastReceiver 广播是Android最基本的四大组件,这是你进行Android培训,从事Android开发相关工作最基础的内容了,我们一一来看一下吧:
组件一:Activity
Activity主要负责与用户进行交互,是每位Android 开发必须掌握的知识点。Activity 常见的四种生命周期状态如下:
1. Active 运行状态
2. Pause 暂停状态
3. Stop 停止状态
4. Killed 消亡状态
Activity 必须在 AndroidMainfest.xml 中注册。
Activity是四大组件之一,Android规定四大组件必须在AndroidMainfest.xml 中注册,Activity如果不注册,则会引起 App Crash 报错。
Activity 注册方法如下:
...
...
组件二:Service
Service 是Android四大组件之一,与Activity相比,Activity是运行在前台,用户可以看得见,Service则是运行在后台,无用户界面,用户无法看到。
Service主要用于组件之间交互(例如:与Activity、ContentProvider、BroadcastReceiver进行交互)、后台执行耗时操作等(例如下载文件,播放音乐等,但Service在主线程运行时长不能超过20s,否则会出现ANR,耗时操作一般建议在子线程中进行操作)。
Service 有两种不同的启动模式 ,不同的启动模式对应不同生命周期,Service启动模式主要分两种:1. 启动模式 2. 绑定模式
启动模式
此模式通过 startService()方法启动,此服务可以在后台一直运行,不会随启动组件的消亡而消亡。只能执行单一操作,无法返回结果给调用方,常用于网络下载、上传文件,播放音乐等。
绑定模式
此模式 通过绑定组件(Activity等)调用 bindService() 启动,此服务随绑定组件的消亡而解除绑定。
如果此时没有其它通过startService()启动,则此服务会随绑定组件的消亡而消亡。
多个组件不仅可以同时绑定一个Service,而且可以通过进程间通信(IPC)执行跨进程操作等。
两种服务可以同时运行
启动模式与绑定模式的服务可以同时运行,在销毁服务时,只有两种模式都不在使用Service时候,才可以销毁服务,否则会引起异常。
四大组件之一,必须在Androidmainfest.xml 中注册。
Service 注册方法如下:
...
...
注意:Service 如不注册 ,不会想Activity 那样会导致App Crash,Service 不注册 不会报异常信息,但是服务会起不来,如不注意很容易迷惑。
组件三:Broadcast
Broadcast是 Android 四大组件之一,是一种广泛运用在应用程序之间异步传输信息的机制。
Broadcast 本质上是一个Intent 对象,差别在于Broadcast可以被多个 BroadcastReceiver处理。BroadcastReceiver 是一个全局监听器,通过它的 onReceive() 可以过滤用户想要的广播,进而进行其它操作。
四大组件之一,必须在Androidmainfest.xml中注册
android:name="ReceiverMethod"
android:enabled="true"
android:exported="true">
如不注册,将导致无法接收处理广播消息。
广播的注册(静态注册、动态注册)
广播的注册分两种,一种在ndroidMfest.xml中静态注册,另一种是在Java代码中动态注册。
组件四:ContentProvider
ContentProvider是Android四大组件之一,其本质上是一个标准化的数据管道,它屏蔽了底层的数据管理和服务等细节,以标准化的方式在Android 应用间共享数据。用户可以灵活实现ContentProvider所封装的数据存储以及增删改查等,所有的ContentProvider 必须实现一个对外统一的接口(URI)。
四大组件之一,必须在Androidmainfest.xml 中注册
android:authorities="ProgramAndroid"
android:exported="true" />
注意 : URI 中的元素
android:authorities="ProgramAndroid"
本文带你简单认识了一下Android开发的四大组件,你对他们有所了解了吗?他们相辅相成缺一不可,想要更深入地了解Android开发的相关知识,来达内参加Android培训,让你秒变Android开发达人!
免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。