一、android应用程序组件
android划分了四个核心的组件类,分别是:Activity、Service、Broadcast Receiver和ContentProvider。相同组件和不同组件之间的导航通过Intent完成。Android还定义了View类来显示可视化界面。
(一)Activity
①在一个Android的应用中,一个Activity通常就是一个单独的屏幕。
②每一个Activity都被实现成一个独立的类,并且都继承与Activity这个基类。
③Activity将显示由几个Views控件组成的用户接口,并对时间做出响应
④Activity在MVC中做控制部分,相当于struct中的action
⑤通过调用startActivity()方法可以从一个屏幕导航到另一个屏幕,打开Activity的条件被装在Intent中。
⑥当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。
(二)Service
①一个Service就是一个长生命周期的、没有用户界面的程序。
②例如:在一个媒体播放器中,应该会有多个Activity,让使用者可以选择歌曲并播放。然而,音乐重复的这个功能并没有对应的Activity,因为使用者会认为在导航到其他屏幕是音乐应该还在播放。在这个例子中,媒体播放器这个Activity会使用Context.startService()来启动一个Service,从而可以在后台保持音乐的播放。同时,系统也将保持这个Service一直执行,知道这个Service运行结束。另外,我们还可以通过使用Context.bindService()方法连接到一个Service上(如果这个Service还没有运行则将启动它)。当连接到一个Service之后,我们还可以通过Service提供的接口和它进行通信。拿媒体播放器这个例子,我们还可以进行暂停、重播等操作。
(三)Broadcast Receiver
①Broadcast Receiver是为了实现系统广播而提供的一种组件。
②例如:我们可以发出一种广播来检测手机电量的变化,这时候就可以定义一个Broadcast Receiver来接受广播,当手机电量较低时提示用户。
(四)ContentProvider
①通过使用ContentProvider来实现不同组件之间数据的共享。
(五)View
①View是Android中图形用户界面的基类,提供了可视化界面的展示。
②Android的图形界面展示可以分为三层:底层是Activity;Activity上面是Window;Window上面是Views
③View又可以分为View和ViewGroup。View是指基本的控件。ViewGroup是指布局控件。
(六)Intent
①Intent是不同组件之间互相导航的纽带,封装了不同组件之间导航查找的条件。
②在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。
③典型的动作类型有MAIN(Activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如,要查看一个人的联系方式,你需要创建一个动作类型为VIEW的Intent,以及一个表示这个人的URI。