Android的主要组件

时间:2023-02-26 23:09:14

(一)Activity(活动)

作用:提供可视化用户界面

只能通过setContentView(View)来显示指定组件

View组件是所有UI控件、容器控件的基类,View组件就是android应用中用户实实在在看到的部分。但View组件需要放到容器组件中,或者使用Activity将它显示出来。

如果需要通过某个Activity把指定View显示出来,调用Activity的setContentView()方法即可。

每个View对象控制着窗口内的一个矩形空间; View是一种层次化结构,Parent View中的布局属性会被子View继承; 位于View层次关系最底层的子View对象所代表的矩形空间就是跟用户进行交互的地方。

Activity的生命状态依次为:
onCreate
onStart
onRestart
onResume
onPause
onStop
onDestroy

Activity共有四种加载模式

1. standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
2. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。
3. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
4. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。

(二)Service(服务)

Service与Activity的地位是并列的,它也代表一个独立的android组件。service没有用户界面,但它会在后台一直运行。

Service与Activity区别:Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。一个Service组件被运行起来之后,它将拥有自己独立的生命周期,Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。

(三)BroadcastReceiver(广播接收器)

BroadcastReceive代表广播消息接收器,非常类似于事件编程中的监听器。普通事件监听器监听的事件是程序中的对象:而BroadcastReceive监听的事件源Android应用中的其他组件。

开发者实现了自己的BroadcastReceive之后,通常有两种方式来注册这个系统级的“事件监听器”。

--》在Java代码中通过Content.registReceive()方法注册BroadcastReceive。

--》在AndroidMainfest.xml文件中使用<receive......>元素完成注册。

广播类型:

普通广播,通过Context.sendBroadcast(Intent myIntent)发送的。

有序广播,通过Context.sendOrderedBroadcast(intent, receiverPermission)发送的。

异步广播,通过Context.sendStickyBroadcast(Intent myIntent)发送的。

(四)Content Provide(内容提供者)

Android系统为这种跨应用的数据交换提供了一个标准,ContentProvider。当用户实现自己的ContentProvider时,需要实现如下抽象方法。

Insert(Uri,ContentValues):向ContentProvider插入数据。

Deleter(Uri,ContentValues):删除ContentProvider中指定数据。

Update(Uri,ContentValues,String,String[]):更新ContentProvider中指定数据。

Query(Uri,String[],String,String[],String):从ContentProvider查询数据。

通常与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序则通过ContentResoler来访问数据。

参考网页:Android的四大组件

Android四大组件详解

Android四大(五大)基本组件简介(一)