一、Android程序生命周期
Android程序的生命周期是指在Android系统中,进程从启动到终止的所有阶段,即android程序从启动到停止的全过程。
Android程序的生命周期是由系统控制的,而不是程序自身直接控制。
内存有限,多任务时需要回收不重要的应用程序。

二、Android四大组件
1.Activity
Activity是Android程序中最基本的模块,它是为用户操作而展示的可视化用户界面,一个Android应用程序中可以只有一个Activity,也可以包含多个,每个Activity的作用及其数目,取决于应用程序及其设计。Activity窗口显示的可视内容是由一系列视图构成的,这些视图均继承自View基类。每个视图均控制着窗口中一块特定的矩形空间,父级视图包含并组织其子视图的布局,而底层视图则在它们控制的矩形中进行绘制,并对用户操作做出响应,所以,视图是Activity与用户进行交互的界面。比如说,开发人员可以通过视图显示一张图片,然后在用户单击它时产生相应的动作。
2. Service
Service是服务的意思,它没有可视化的用户界面,而是在一段时间内在后台运行的程序。例如,一个服务可以在用户做其他事情的时候在后台播放背景音乐、从网络上获取一些数据或者计算一些东西并提供给需要这个运算结果的Activity使用。Android程序中的每个服务都继承自Service基类。
3.BroadcastReceiver
BroadcastReceiver(广播接收器)是一个专注于接收广播通知信息,并做出对应处理的组件。Android程序中的很多广播是源自于系统的;另外,Android应用程序也可以进行广播。
在一个Android应用程序中可以拥有任意数量的广播接收器,以对所有它感兴趣的通知信息予以响应,所有的广播接收器均继承自BroadcastReceiver基类。
广播接收器没有用户界面,然而,它们可以启动一个Activity来响应它们收到的信息,或者用NotificationManager来通知用户。
创建一个BroadcastReceiverTest.java类文件,使该类继承自BroadcastReceiver类,以便作为广播接收器,代码如下:
publicclass BroadcastReceiverTestextends BroadcastReceiver {
@Override
public void onReceive(Contextarg0, Intent arg1) {
}
}
4.ContentProvider
Content Provider是应用程序之间共享数据的一种接口机制,是一种更为高级的数据共享方法,可以指定需要共享的数据,而其他应用程序则可以在不知道数据来源、路径的情况下,对共享数据进行操作。
在Android程序中,共享数据的实现需要继承自ContentProvider基类,该基类为其他应用程序使用和存储数据实现了一套标准方法,然而,应用程序并不直接调用这些方法,而是使用一个ContentResolver对象,并通过调用它的方法作为替代,ContentResolver对象提供了query()、insert()、update()和delete()等方法,可以对共享的数据执行各种操作。
三、Activity生命周期
1.Activity的4种状态
Running状态: 一个新Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
Paused状态: 当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点,故不可与用户交互。
Stopped状态: 当Activity不可见时,Activity处于Stopped状态。Activity将继续保留在内存中保持当前的所有状态和成员信息,假设系统别的地方需要内存的话,这时它是被回收对象的主要候选。当Activity处于Stopped状态时,一定要保存当前数据和当前的UI状态,否则一旦Activity退出或关闭时,当前的数据和UI状态就丢失了。
Killed状态: Activity被杀掉以后或者被启动以前,处于Killed状态。这时Activity已被移除Activity堆栈中,需要重新启动才可以显示和使用。
2.Activity的事件回调方法
onCreate()方法:创建Activity时被回调;最常见,项目创建后自动创建一个Activity,自动重写了onCreate()方法;
onStart()方法:启动Activity时被回调,即变为显示时被回调;
onRestart()方法:重新启动Activity时被回调,总在onStart()以后执行;
onPause()方法:暂停Activity时被回调,通常用于保存数据;
onResume()方法:暂停变为活动状态时被回调;
onStop()方法:停止Activity时被回调;
onDestroy()方法:销毁Activity时被回调。


