(一)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四大(五大)基本组件简介(一)

Android的主要组件的更多相关文章

  1. Android消息传递之组件间传递消息

    前言: 上篇学习总结了Android通过Handler消息机制实现了工作线程与UI线程之间的通信,今天来学习一下如何实现组件之间的通信.本文依然是为学习EventBus做铺垫,有对比才能进步,今天主要 ...

  2. Android的四大组件之Activity

    Android的四大组件之Activity Activity:是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,B ...

  3. android中四大组件之间相互通信

    好久没有写有关android有关的博客了,今天主要来谈一谈android中四大组件.首先,接触android的人,都应该知道android中有四大组件,activity,service,broadca ...

  4. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  5. Android开发之 Android 的基本组件的概述

    Android是一个为组件化而搭建的平台,它的应用是由一些零散的有联系的组件组成,并通过AndroidManifest.xml文件 把它们绑定起来. Android常用的组件有: Activity(活 ...

  6. Android的四大组件

    Android的四大组件:Activity.Service.BroadcastReceiver.Content Provider. Content Provider 属于Android应用程序的组件之 ...

  7. Android中Intent组件详解

    Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...

  8. Android之桌面组件AppWidget

    转载:Android之桌面组件App Widget初探 Android开发应用除了程序应用,还有App Widget应用.好多人会开发程序应用而不会开发App Widget应用.本帖子就是帮助大家学习 ...

  9. Android四大基本组件

    Android四大基本组件分别是 Activity:整个应用程序的门面,负责与用户进行交互. Service:承担大部分工作. Content Provider内容提供者:负责对外提供数据,并允许需要 ...

随机推荐

  1. 解决yum错误Error: requested datatype primary not available

    服务器信息: [mvj3@sdk2 ~]$ cat /proc/version Linux version 2.6.18-194.el5 (mockbuild@ca-build10.us.oracle ...

  2. 创建下拉列表并通过ajax填充下拉数据

    $(document).ready(function(e) { jQuery.post('${basePath}/customerService/getCustomerService4List.do' ...

  3. django 外键 ,django __

    data sqlite> select * from author; id name age 1 jim 12 2 tom 11 sqlite> select * from book; i ...

  4. kettle的jdk1.7环境变量配置

    1).到官网下载需要安装的kettle版本,目前最新版本4.2,官网地址:http://kettle.pentaho.org,我们是使用的版本是kettle3.2 2).本地安装jdk 1.4或以上版 ...

  5. [HDOJ5510]Bazinga(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510 普通集合会tle,换高贵的并查集. #include <algorithm> #in ...

  6. Oracle中添加视图

     CREATE or REPLACE view view_will as   select college.collegeid,mat.stuid,sum(score.chinese+score.ma ...

  7. Flume学习 & Kafka & Storm 等 & Log4J 配置

    正在学习这篇文章: http://blog.csdn.net/ymh198816/article/details/51998085 和工作中接触的电商.订单.分析,可以结合起来. 开宗明义,这幅图片: ...

  8. Windows Live Writer配置测试

    文字可以了  不知道代码怎么发布

  9. 配置域名服务器报错named[822]: dns_rdata_fromtext /etc/bind/db.asertest.com mail not a valid number

    问题描述: 为了配置邮件服务器,更改了相关域名,改完后,重启bind9报错 Mar 17 14:39:39 DnsServer2 named[822]: dns_rdata_fromtext: /et ...

  10. html常用笔记

    <?php //CSS可以对文本格式进行精确的控制 //HTML标记更有利于搜索引擎 //一.标签 <br> <p>//换行后插入一个空行,单字节不换行,双字节自动换行 ...