四大组件

Android 应用程序通常由四大组件组成,包括Activity、BroadCastReciever、ContentProvider和Service,它们是组成一个Android App的最基本元素。四大组件分别有不同的作用。

  • Activity(活动):负责向用户展示信息和程序的处理结果,是直接和用户交互的界面。
  • Content Provider(内容提供器):用来获取其他应用的信息,或者对外提供获取自身信息的接口。比如Contects应用对外提供联系人列表的接口。
  • Service(服务):负责后台服务,比如后台计算、下载、网络请求、处理等。
  • BroadCast Reciever(广播接收器):用来发送和接受广播,主要用来进行应用之间或系统的通信,其中应用内通信使用LocalBroadCastReciever。
  • Intent(意图):Intent不属于四大组件之一,但它是四大组件之间通信的载体,用来传递信息、交换数据。

Context

在Android应用程序中,Context代表当前程序的上下文环境,Activity、Service、Application都继承自Context。当应用程序启动的时候,Android系统会为当前应用创建一个Application对象(ApplicationContext对象),该程序中的所有组件都拥有这样一个共同的对象。这个对象贯穿整个应用程序的生命周期,为应用全局提供功能和环境支持。

由于Activity和Service都继承自Context,所以创建Activity和Service的时候也同时创建了Context对象,在Activity和Service中可以直接使用this来代表当前的Context,也可以使用getApplicationContext()方法来获取整个App的Context,两种在某些时候还是存在一些区别。

Android应用程序创建Context的时间点:

  • 创建Application
  • 创建Activity
  • 创建Service

一个Android App中,Context对象的数量为Activity个数 + Service个数 + 1(Application个数)