前言
Android程序不同于Java程序(只需要 main()
函数就可以运行),而是需要一个完整的Android工程环境,这个环境下我们有像 Activity
,Service
,BroadcastReceiver
, ContentProvider
等系统软件。每个组件都要有各自的上下文环境,也就是 Context
——维持Android程序中各组件能够正常工作的核心功能类。
Context 类型
简单来说,
Context
一共有三种类型:Application
,Service
,Activity
。出于安全原因的考虑,Android是不允许Activity或Dialog凭空出现的,一个Activity的启动必须要建立在另一个Activity的基础之上,也就是以此形成的返回栈。而Dialog则必须在一个Activity上面弹出(除非是System Alert类型的Dialog)。
因此在这种场景下,我们只能使用Activity类型的Context,否则将会出错。
Context 数量
Context数量 = Activity数量 + Service数量 + 1
上面的1代表着Application的数量,因为一个应用程序中可以有多个Activity和多个Service,但是只能有一个Application。