1.前台进程:
与用户当前做的事紧密相关,不同的应用程序能够通过不同的方法将它的宿主进程调到前台
1>进程正在屏幕的最前端运行一个与用户交互的活动(Activity)他的onResume方法将被调用.
2>进程有一个服务(Service),并且在服务的某个回调函数(Servive.onCreate.Service.onStart,或Service.onDestroy)内有正在运行的代码
3>有一个正在运行的Internet Receiver(它的IntentReceive方法正在执行)
2 可见进程(Visible)
有一个可以被用户从屏幕上看到的活动,但不在前台(它的onPause方法被调用 )
举例:
如果前台的活动是一个对话框,以前的活动部就隐藏在对话框之后,就会出现在这种进程。
可见进程非常重要,一般不允许被终止,除非是保证前台的进程运行而不得不中止它。
3.服务进程(Service)
拥有一个已经用startService方法启动的服务,虽然用户无法直接看到这些进程,但他们做的事情却是用户所关心的事(如后台Mp3回放或后台网络数据的上传和下载)
系统将一直运行这些进程,除非内存不足以维持所有的前台进程和可见进程
4后台进程(background)
拥有一个当前用户看不到的活动(它的onstrop方法被调用)。
这些进程对用户体验没有直接的影响,如果他们正确执行了活动生命周期,系统就可以在任意时刻终止该进程以回收内存,并提供给前面三种类型的进程使用,系统中通常有很多这样的进程在运行。这些进程保存在LRU列表中,以确保当内存不足时用户最近看到的进程最后一个被终止。
5空进程
不拥有任何活动的应用程序组件的进程,保留这种进程的唯一原因是在下次应用程序的某个组件需要运行时,不需要重新创建进程,这样可以提高运行速度。