Android四大组件的介绍

一.Android四大组件详解

Android四大组件分别是:activity,service,content provider,broadcast receiver.

1.activity:

1).一个应用程序一般由多个activity组成.

2).任务栈(task stack)(别名(back stack)后退栈),记录存放用户开启的activity.

3).一个应用程序被开启之后,系统就会分配一个任务栈,当所有activity都退出时,任务栈清空.

4).任务栈的idinteger型的,是自增长的,它从1开始自增长,自增长值为1.

5).activity之间通过intent进行通信.

6).app中每一个activity都必须在AndroidManifest.xml文件中进行声明,否则系统将不识别不执行该activity.

7).activity的启动模式,standard(标准启动模式),single Top(单一顶部),singletask(单一任务栈),singleInstance(单态,单例模式).

(1).standard,默认的标准启动模式:每次startActivity都是创建一个新的activity,适用于绝大多数情况.

(2).single Top,单一顶部,如果要开启的activity在任务栈的顶部已经存在,就不会创建新的实例,而是调用onNewIntent()方法.

应用场景:浏览器书签.避免栈顶的activity被重复创建.

(3).single task,单一任务栈,activity只会在任务栈里面存在一个实例,如果要激活的activity在任务栈中已经存在,调用onNewIntent()方法,并且清空当前任务里面的所有activity,

应用场景:浏览器的activity,整个任务栈只有一个activity.

(4).singlelnstance,单态单例模式,整个手机系统中只有一个任务实例,不同的应用去打开一个activity,共享这个activity.

2.Service:

1).service用于用户在后台完成独立的操作,service分为两种,started(启动),bound(绑定):

a) Started(启动):当应用程序组件调用startService()方法时服务停止,服务处于started状态.

b) Bound(绑定): 当用用程序组件调用boundService()方法绑定服务时,服务处于绑定状态.

2).started Service(启动服务):是由其他组件调用startService()方法启动的,导致服务的onStartCommand()方法被调用.当服务处于started的状态时,其生命周期与启动它的组件无关,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止.

3).使用bindService()方法启动服务,调用的组件与服务绑定在了一起,该组件一旦退出服务也就终止.

4).开发人员需要在程序配置文件中生命全部的service,使用<service></service>标签.

5).Service通常位于后台运行,一般不与用户交互,所以Service组件没有图形用户界面.Service组件需要继承Service基类.Service组件通常为其他组件提供后台服务或者监控其他组件的运行状态.

6).长期在后台运行的组件不要在activity中开启子线程.应该是创建服务,在服务里面开启子线程.

3.Content provider:

1).android 平台提供了Content Provider 使一个程序的指定数据集提供给其他应用程序.其他应用可以通过contentResolver类从该类容中获取存入的数据.

2).当多个应用程序中共享数组时可使用该组件.例如通讯录,

3).ContentProvider实现数组共享.ContentProvider用于保存数组和获取数据,并对其所有应用程序可见.

4).ContentProvider使用URL来唯一标识其数据集.

4.Broadcast receiver:

1).广播接收器专注于广播通知信息,并作出对应事件处理的组件.

2).应用程序可以拥有任意数量的广播接收器.以对它感兴趣的所有消息作出响应.所有的接收器均继承自BroadcastReceiver基类.

3).广播接收者注册有两种方式:

a) 程序动态注册.

b) AndroidManifest.xml文件中进行静态注册.

4).动态注册的特点:activity销毁后,该广播失效.静态注册只要设备开启广播接收器就是打开的.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值