Android 进程的五种生命周期学习

时间:2021-02-09 16:43:31

本节学习进程的生命周期:

Android系统是尽可能的去保护每一个进程,但是最终需要为新的进程,或者很重要的进程释放以前的老进程。为了决定那个进程被保护,那个被杀死。Android系统根据当前进程中组件的状态,以及运行在进行中的组件决定保留那个,杀死那个进程。当然了系统资源短缺时,进程等级低的先杀死,以此类推。

android系统中有五种进程等级:

1: 前台进程(前台进程有五种状态,只有其中一种满足就是前台进程,前台进程是很难被杀死的)

      a:拥有一个正在与用户交互的Activity(此时Activity的OnResume方法被调用)的进程

      b:拥有一个服务,此服务绑定一个与用户正在交互的Activity

      c:拥有一个“正在运行于前台”的服务,也就是服务的startForeground被调用

      d:拥有一个服务,此服务正在执行服务生命周期函数中的一个(onCreate(), onStart(), or onDestroy())

      e:拥有一个广播接受者,此广播接受者正在执行onReceiver方法


2:可见进程(可见进程有两种状态,只要其中一种满足就是前台进程)

     a:拥有一个Activity,但是此Activity不在前台,但是用户能看到此Activity的进程(Activity的onPause方法调用)

     b:拥有一个服务,此服务绑定了一个前台或者可见的Activity


3:服务进程

      拥有一个通过StartServer启动的服务的进程

      虽然服务用户是看不见的,但是服务进程却可以干一些很重要的事情(比如在后台播放音乐,下载东西),服务进程一般是不可能杀死的。除非系统资源不够,会杀死服务进程。但是当系统资源充足时,系统会自动启动被杀死的服务进程。


4:后台进程:

     拥有一个用户看不见的Activity的进程,此时Activity的onStop方法被调用


5: 空进程:

      没有任何活动的应用组件的进程

      空进程很容易被杀死的。